Ich sehe immer wieder Rollenattribute in der Arbeit einiger Leute. Ich benutze sie auch, aber ich bin mir nicht sicher über ihre Wirkung.
Zum Beispiel:
<header id="header" role="banner">
Header stuff in here
</header>
Oder:
<section id="facebook" role="contentinfo">
Facebook stuff in here
</section>
Oder:
<section id="main" role="main">
Main content stuff in here
</section>
Ist dieses Rollenattribut notwendig?
Ist dieses Attribut besser für die Semantik?
Verbessert es die Suchmaschinenoptimierung?
Eine Liste von Rollen kann hier gefunden werden, aber ich sehe, dass einige Leute ihre eigenen erfinden. Ist das erlaubt oder eine korrekte Verwendung des Attributs "Rolle"?
Haben Sie dazu eine Meinung?
Die meisten der Rollen, die Sie sehen, wurden als Teil von ARIA 1.0 definiert und später in HTML5 integriert. Einige der neuen HTML5-Elemente (dialog, main, etc.) basieren sogar auf den ursprünglichen ARIA-Rollen.
http://www.w3.org/TR/wai-aria/
Es gibt zwei Hauptgründe für die Verwendung von Rollen zusätzlich zu Ihrem nativen semantischen Element.
Grund Nr. 1 Überschreiben der Rolle, wenn kein Element der Hostsprache geeignet ist oder aus verschiedenen Gründen ein semantisch weniger geeignetes Element verwendet wurde.
In diesem Beispiel wurde ein Link verwendet, obwohl die daraus resultierende Funktionalität eher einer Schaltfläche als einem Navigationslink entspricht.
<a href="#" role="button" aria-label="Delete item 1">Delete</a>
Bildschirmleser erkennen dies als Schaltfläche (im Gegensatz zu einem Link), und Sie können einen CSS-Attributselektor verwenden, um class-itis und div-itis zu vermeiden.
*[role="button"] {
/* style these a buttons w/o relying on a .button class */
}
Grund #2. Sicherung der Rolle eines nativen Elements, um Browser zu unterstützen, die zwar die ARIA-Rolle implementiert haben, aber noch nicht die Rolle des nativen Elements implementiert haben.
Zum Beispiel wurde die "main" Rolle in Browsern seit vielen Jahren unterstützt, aber es ist eine relativ neue Ergänzung zu HTML5, so dass viele Browser noch nicht die Semantik für <main>
unterstützen.
<main role="main">…</main>
Dies ist technisch gesehen redundant, hilft aber einigen Nutzern und schadet keinem. In ein paar Jahren wird diese Technik wahrscheinlich überflüssig werden.
Sie haben auch geschrieben: Ich sehe, dass einige Leute ihre eigenen Namen erfinden. Ist das erlaubt oder eine korrekte Verwendung des Rollenattributs?
Das ist eine gültige Verwendung des Attributs, es sei denn, eine echte Rolle ist nicht enthalten. Die Browser verwenden die erste erkannte Rolle in der Tokenliste.
<span role="foo link note bar">...</a>
Von der Liste sind nur link
und note
gültige Rollen, und so wird die link-Rolle angewendet, weil sie an erster Stelle steht. Wenn Sie benutzerdefinierte Rollen verwenden, vergewissern Sie sich, dass diese nicht mit einer definierten Rolle in ARIA oder der von Ihnen verwendeten Host-Sprache (HTML, SVG, MathML, etc.) kollidieren.
Soweit ich weiß, waren Rollen ursprünglich in XHTML definiert, wurden aber veraltet. Jetzt sind sie jedoch in HTML 5 definiert, siehe hier: https://www.w3.org/WAI/PF/aria/roles#abstract_roles_header
Der Zweck des Attributs role besteht darin, der Parsing-Software die genaue Funktion eines Elements (und seiner Kinder) als Teil einer Webanwendung zu nennen. Dies dient vor allem der Zugänglichkeit für Screenreader, aber ich kann mir auch vorstellen, dass es für eingebettete Browser und Screen Scraper nützlich ist. Um für den ungewöhnlichen HTML-Client nützlich zu sein, muss das Attribut auf eine der Rollen aus der von mir verlinkten Spezifikation gesetzt werden. Wenn Sie Ihre eigene Rolle erfinden, kann diese Funktionalität nicht funktionieren - ein Kommentar wäre besser.
Praktische Hinweise hier: http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/
Ist dieses Rollenattribut notwendig?
Antwort: Ja.
Es bietet Ihnen:
Mir ist klar, dass dies eine alte Frage ist, aber eine andere mögliche Überlegung, die von Ihren genauen Anforderungen abhängt, ist, dass die Validierung auf https://validator.w3.org/ folgende Warnungen erzeugt:
Warnung: Die Formularrolle ist für das Element form unnötig.
Rollenattribute verbessern hauptsächlich die Zugänglichkeit für Personen, die Screenreader verwenden. Wir verwenden es für verschiedene Fälle wie Zugänglichkeit, Geräteanpassung, serverseitige Verarbeitung und komplexe Datenbeschreibung. Mehr wissen klicken: https://www.w3.org/WAI/PF/HTML/wiki/RoleAttribute][1].
[1]: https://www.w3.org/WAI/PF/HTML/wiki/RoleAttribute [2]: https://www.webguru-india.com/website-development-company [3]: https://www.webguru-india.com