2010-02-01 4 views
6

Wenn ich ein Formular habe, das den Hauptteil des Inhalts einer Seite darstellt, hat die Zuweisung des Fokus zum ersten Formularfeld über JavaScript beim Laden der Seite negative Auswirkungen auf die Barrierefreiheit?Wird der Fokus automatisch für die Barrierefreiheit zugewiesen?

+0

Siehe auch http://ui.stackexchange.com/questions/2861/drawbacks-of-auto-focusing-on-a-web-pages-text-field-javascript – Day

Antwort

10

Die kurze Antwort ist nein, es macht die Sache nicht unzugänglich machen, aber es kann es machen verwirrend. Die längere Antwort folgt. Werden Ihre Benutzer wissen, dass es eine Seite mit einem Formular gibt, und muss es einen beschreibenden Text geben, den Sie lesen sollten, bevor Sie das Formular ausfüllen? Ich bin ein Screenreader-Benutzer und es kann nervig sein, sich in zufällige Felder zu konzentrieren. Es ist klar, warum dein Fokus im Google-Suchfeld endet, also stört mich das nicht. Wenn mein Fokus automatisch jedes Mal, wenn ich eine Frage auf Stackoverflow sah, in das Bearbeitungsfeld für die Antwort gestellt wurde, würde ich mich ärgern, da ich meinen Bildschirmleser zwingen musste, vom Formularfeld zum oberen Rand der Seite zu navigieren.

+0

Danke Jared. Das ist eine gute Antwort. Ich würde mich jedoch gerne einigen Gemeinsamkeiten nähern. Wir mit diesem hier für Drupal 8 kämpfen - https://drupal.org/node/2096347 Es gibt noch weitere Links: https://dequeuniversity.com/assets/html/jquery-summit/ html5/Dia/form-attributes.html –

+0

auch noch hinzugefügt: http://webaim.org/blog/future-web-accessibility-html5-input-extensions/ So ist HTML5 Autofokus mit besser als mit Javascript oder Tabindex, weil es vom Benutzer-Agent deaktiviert werden kann. Es muss jedoch vor der Verwendung sorgfältig abgewogen werden. –

+0

Es ist wahrscheinlich zugänglicher HTML5 Autofokus-Attribut zu verwenden, wenn das eine Option ist http://webaim.org/blog/future-web-accessibility-html5-input-extensions/ –

0

Wird die Zuordnung des Fokus zum ersten Formularfeld über JavaScript beim Laden der Seite negative Auswirkungen auf die Barrierefreiheit haben?

Ich kann an keine denken. Dazwischen können Felder irritieren, welche Hilfssoftware ein Benutzer gerade ausführt, aber das erste Feld - kaum. Ich habe keine Erfahrung mit Blindenschrift und ähnlichen Kunden.

Da sogar Google es auf ihrer Titelseite tun, denke ich nicht, dass es so ein großer Deal sein kann.

+1

Nur weil jemand einen Bildschirmleser verwendet, doesn ' t bedeuten, dass sie kein JavaScript verwenden. Die Seite wird im Browser komplett mit JavaScript gerendert, dann wird ein Modell der Seite an den Screenreader übergeben.Wenn die Seite mit JavaScript aktualisiert wird, werden diese Aktualisierungen an das Modell der Seite gesendet, mit der der Bildschirmleser arbeitet. – Jared

-3

würde ich nicht sagen. Ein Screenreader wird dies wahrscheinlich nicht einmal bemerken, da er das JavaScript auf der Seite nicht interpretiert.

Ein anderer Benutzer, der einen "normalen" Browser hat, wird den Vorteil haben, den Cursor bereits an der richtigen Stelle zu haben, was die Navigation mit nur der Tastatur erleichtert.

+8

Als Bildschirmleser ist dies nicht korrekt. Der Browser führt das JavaScript aus und gibt dann ein Modell der Seite an den Bildschirmleser zurück. Dies bedeutet, dass Sie leicht in ein Formularfeld ohne Kontext dessen, was es ist, oder warum Sie dort sind, platziert werden können. – Jared

+0

Sehr interessant! - Zeigt nur, was für eine nützliche Gemeinschaft das ist. Ich bin seit ungefähr 12 Jahren ein Webentwickler und hätte genau die gleiche Antwort gegeben wie Juri. Ich hatte keine Ahnung, dass Bildschirmleser jetzt so arbeiten. Ich werde in naher Zukunft einen neuen Blick auf die Zugänglichkeit werfen. Können Sie einen Bildschirmleser erkennen und stattdessen einen anderen, nützlicheren Teil der Seite fokussieren? – meouw

+1

Es gibt keine Möglichkeit, das Wetter zu erkennen, aus dem ein Bildschirmleser in einem mir bekannten Browser herausläuft. Wenn Sie einen Blick darauf werfen möchten, wie Sie den Screenreader-Benutzern helfen können, indem Sie zusätzliche Informationen bereitstellen, werfen Sie einen Blick auf http://www.w3.org/TR/2008/WD-wai-aria-20080204/ Nicht sicher, ob dies der ist neueste Version, aber es ist die Version, die verlinkt wurde, als Google ankündigte, dass sie ARIA-Unterstützung in Google Reader eingebaut hatten. – Jared

0

würde ich nicht so sagen, Fragmente sind ein Bestandteil von HTTP und sie setzen den Fokus einer * HTML-Seite ..

+0

Komm wieder - was "Fragmente"? –

+0

fragments = #TextAtTheEndOfAURL – jball

+0

Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/Fragment_identifier. – jball

0

Viele Websites werden dies tun, google ist ein gutes Beispiel, das einzige Problem ist, wenn Sie etwas in die Adressleiste eingeben, oder in die Sucheingabe in Ihrem Browser, neigt die Aktion der Fokussierung des Formularfeldes stehlen Fokus von wo Sie tippen. Es ist ein kleines Ärgernis.

2

Es könnte ein bisschen sein, wenn wir einen Tastaturbenutzer (entweder mit einem Screenreader oder nur mit einem gewöhnlichen Tastaturbenutzer) erwarten, der die Links oben auf der Seite beim ersten Tab drücken möchte. Bei Bildschirmleseprogrammen können Sie auch WAI-ARIA hinzufügen, um Anweisungen hinzuzufügen, wenn Benutzer nicht erwarten, in die Mitte eines Formulars verschoben zu werden.

Wenn es viel wahrscheinlicher ist, dass der Benutzer das Feld sofort eingeben möchte, dann ist der Autofokus meiner Meinung nach es wert. Aber aus dem oben genannten Grund würde ich es nicht auf jede Seite mit einem Eingabefeld verwenden.

Wenn Sie Autofokus machen, stellen Sie sicher, dass Sie es sofort, in einem Skript so schnell wie möglich nach dem Eingabeelement oder in Zukunft mit dem HTML5-Autofokus-Attribut tun. Tun Sie es nicht so spät wie window.onload. Es ist ärgerlich, den Fokus an anderer Stelle angeklickt zu haben, nur damit das Dokument nach einiger Zeit fertig geladen ist und den Fokus während der Eingabe auf ein anderes Element stehlen kann.

+0

Ausgezeichnete Punkt, wann der Autofokus implementiert werden soll. –