Als er über die Seite zur Bedienung der Bildschirmlesesoftware sprach, betonte er gegenüber unseren Front-End-Studenten besonders: Was er am meisten hasste, war der Code onfocus="this.blur()" im Seitenlink. Woher kam das? (Abbildung 1) Liebe Studierende, kommt euch dieser Code bekannt vor? Ja, ihr wisst schon, wir verwenden ihn oft, um den gepunkteten Rahmen zu entfernen, der um einen Link herum erscheint, wenn dieser im Fokus ist (wie in Abbildung 1 oben zu sehen). Wenn ihr danach googelt, werdet ihr feststellen, dass sich die ersten paar Dutzend Seiten ausschließlich mit der Technik zum Entfernen des gepunkteten Rahmens befassen. Aber darüber haben wir vielleicht noch nie nachgedacht: Diese Codezeile hat blinden Benutzern große Probleme bereitet: Sie unterbricht den Tabulatortastenpfad blinder Benutzer, sodass der Tabulatorcursor nicht auf den nächsten Controller (Link, Formularfeld, Objekt, Imagemap usw.) der Seite fokussieren kann. Der Test läuft wie folgt ab: Code kopieren Der Code lautet wie folgt:<Text> <a href="#" >Erster Link</a> <a href="#" >Zweiter Link</a> <a href="#" onfocus="this.blur();">Dritter Link</a> <a href="#" >Vierter Link</a> <a href="#" >Fünfter Link</a> <a href="#" >Sechster Link</a> </body> Wenn Sie die Tabulatortaste drücken, können der erste und der zweite Link normal fokussiert werden. Wenn Sie mit der Tabulatortaste weiter zum dritten Link gehen, kommt es zu einer Tragödie: Der Fokus kehrt zum ersten Link zurück und kann nicht auf den vierten Link fokussiert werden. Der Grund dafür ist, dass, wenn der Fokus auf dem dritten Link liegt, die Ereignisverarbeitung onfocus="this.blur()" den Fokusverlust erzwingt und der Fokus zum Anfang des Dokuments zurückkehrt. Das dauerhafte Drücken der Tabulatortaste hat zur Folge, dass der Fokus zwischen den ersten drei Links hin- und herwandert und die dahinter liegenden Inhalte nicht mehr über die Tabulatortaste [1] erreicht werden können. ![]() Gibt es also einen besseren Weg? Das Hinzufügen von onfocus="this.blur()" dient grundsätzlich dazu, den gepunkteten Rahmen um den Link zu entfernen, nachdem dieser den Fokus erhalten hat (natürlich sind die Fokuseffekte in Chrome, Safari und Opera unterschiedlich, deshalb nennen wir es hier einfach so). Im W3C-Artikel zu Outline wird erläutert, dass dieses gepunktete Kästchen dazu dient, Benutzern mitzuteilen, welches Element auf der aktuellen Seite den Fokus hat. Ich denke, dass die Existenz des gepunkteten Kästchens sinnvoll ist, aber manchmal kann man bestimmte Anforderungen an die „visuelle Sauberkeit“ nicht vermeiden (wie in Abbildung 2 gezeigt: Das gepunktete Kästchen trennt den „Produkt“-Hintergrund vom roten Block darunter). Im Folgenden sind einige gängige Methoden zum Entfernen des gepunkteten Kästchens zusammengefasst:
Auf dieser Grundlage lautet die empfohlene Methode zum Entfernen des gepunkteten Rahmens des Links: Verwenden Sie das Attribut hidefocus im Internet Explorer und outline:none in FF/Chorme/Opera/Safari. Im Augenblick: Hinweise [1] Standardmäßig werden in Safari durch Drücken der Tabulatortaste keine Links, sondern Formularfelder fokussiert. Sie können diese Funktion aktivieren, indem Sie in den Einstellungen unter „Erweitert“ die Option „Tabulatortaste drücken, um jedes Element auf der Webseite hervorzuheben“ aktivieren. Opera ist etwas ganz Besonderes. Mit Umschalt+Pfeiltasten nach oben, unten, links und rechts kann die Seite nach oben, unten, links und rechts fokussiert werden. [2] In Opera wird beim Anklicken eines Links (im Fokus- oder aktiven Zustand) kein gepunkteter Rahmen angezeigt, daher kann das Problem mit dem gepunkteten Rahmen für Links in Opera ignoriert werden. Der von Opera mit den Tasten Umschalt+Auf, Ab, Links und Rechts erstellte Drahtrahmen kann nicht mithilfe von „outline:none“ entfernt werden, Opera unterstützt jedoch das Outline-Attribut. [3] Das Hidefocus-Attribut ist ein privates Attribut des Internet Explorers. Obwohl das Hidefocus-Attribut zwei Werte hat: true oder false, zeigen die Testergebnisse, dass in IE5-IE9, unabhängig davon, ob der Wert true oder false ist, der Link den gepunkteten Rahmen verliert, solange das Hidefocus-Attribut hinzugefügt wird. |
<<: So verhindern Sie, dass Hyperlinks beim Verwenden eines Links springen
>>: So installieren Sie Jupyter in Docker auf CentOS und öffnen Ports
Lassen Sie mich zunächst ein Beispiel geben (wenn...
Inhaltsverzeichnis Vorherige 1. Was ist Setup-Syn...
Was ist ein Primärschlüssel? Ein Primärschlüssel ...
VMware-Tools bieten hohen Komfort bei der Verwend...
1. Änderungen in der Standard-Speicher-Engine von...
Das Definieren des Datenfeldtyps in MySQL ist für...
Inhaltsverzeichnis Übersicht zur Umgebungseinrich...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Gängige Zahlungsarten in Proje...
Beim dynamischen Verketten von Zeichenfolgen verw...
Frage Wie ändere ich den CSS-Pseudoklassenstil mi...
Erfordern Das Div unter dem Körper ist vertikal z...
Lassen Sie uns heute einige gängige Textverarbeit...
Vorwort ORDER BY 字段名升序/降序. Ich glaube, jeder hier...
Wir alle wissen, dass die zugrunde liegende Daten...