2016-06-18 8 views
0

Ich baue ein modales Plugin und möchte den Fokus auf die Adressleiste setzen können.Programmgesteuertes Fokussieren der Adressleiste?

Ich würde gerne in der Lage sein, dies zu tun, weil ich Tabbing auf Objekte innerhalb des modalen Fensters beschränken muss, aber Tastaturbenutzer und Benutzer mit Eingabehilfen sollten in der Lage sein, aus dem modalen Fenster auf die Adresse zu löschen bar, wenn sie das letzte Element erreicht haben (damit sie nicht im Modal stecken bleiben). Ich bin mir bewusst, dass ich dies tun kann, indem ich alle Tabbable-Elemente außerhalb des Modals auf einen Tabindex von -1 setze, aber ich möchte diese Lösung wenn möglich vermeiden.

Ich bin mir bewusst, dass es aus Sicherheitsgründen nicht möglich ist, den Fokus direkt auf die Adressleiste zu setzen. Gibt es jedoch eine Möglichkeit, dies entweder zu tun oder die Seite so zu defokussieren, dass das nächste Element die Adressleiste ist?

+2

Warum können sie nicht einfach Strg-L/Cmd-L? – jonrsharpe

+0

Sie haben möglicherweise mehr Erfolg beim Unterrichten Ihrer Benutzer über [Control] + [L] – jdphenix

+0

http://stackoverflow.com/questions/3266053/setting-focus-to-the-address-bar-using-a-firefox-extension vielleicht – mplungjan

Antwort

0

Mit einem modalen Element werden die anderen Elemente nicht aus dem visuellen Puffer entfernt. Ein Screenreader kann automatisch jedes andere Element nach Ihrem Modal lesen. Das Entfernen des Tabindex von Elementen, die angekündigt werden könnten, ist in der Tat keine Lösung.

Sie können versuchen, den Fokus von irgendeinem anderen Element mit Code wie $(".outside_modal").onfocus() {$("#modal-first-link").focus()} zu entfernen, aber Sie haben Inkohärenz zwischen Ihrem visuellen Fokus, der Linkziele lesen wird, und der Aktion, die vom Tastaturfokus bereitgestellt wird.

Die einzige praktikable Lösung besteht darin, das modale Element an der letzten Position Ihres DOMs festzulegen.