ARIA: feed-Rolle
Ein feed
ist eine dynamische scrollbare list
von articles
, bei denen Artikel entweder am Anfang oder Ende der Liste hinzugefügt oder entfernt werden, während der Benutzer scrollt. Ein feed
ermöglicht es Screenreadern, den Lese-Cursor im Browsermodus zu verwenden, um sowohl zu lesen als auch durch einen Strom von reichhaltigem Inhalt zu scrollen, der möglicherweise unendlich weiter scrollt, indem mehr Inhalt geladen wird, während der Benutzer liest.
<section role="feed" aria-busy="false">
…
<article aria-posinset="427" aria-setsize="-1">…</article>
<article aria-posinset="428" aria-setsize="-1">…</article>
<article aria-posinset="429" aria-setsize="-1">…</article>
…
</section>
Beschreibung
Ein feed
ist eine Art von list
, die Rolle enthält scrollbare articles
, bei denen das Scrollen dazu führen kann, dass Artikel an den Anfang oder das Ende der Liste hinzugefügt werden. Die Rolle ermöglicht es unterstützenden Technologien, den Lese-Cursor im Browsermodus zu verwenden, um sowohl zu lesen als auch durch einen Strom von reichhaltigem Inhalt zu scrollen, der möglicherweise unendlich weiter scrollt, indem mehr Inhalt geladen wird, während der Benutzer liest. Beispiele beinhalten einen RSS-Feed, Nachrichten-Feeds, Social-Media-Feeds wie Facebook, Instagram oder Mastodon oder sogar eine Liste verwandter Produkte auf einer E-Commerce-Seite. Diese Ströme können begrenzt oder unendlich sein, mit mehr Inhalt, der geladen wird, während der Benutzer scrollt. Die Implementierung des feed
-Musters ermöglicht es einem Screenreader, den Feed-Inhalt zuverlässig im Lesemodus zu lesen und das Laden auszulösen.
Im Gegensatz zu den Dokumentstruktur-Elementen, die statische HTML-Elemente repräsentieren, erfordert die feed
-Rolle spezifische Interaktionen und eine Implementierung der Tastaturnavigation. Der feed
ist ein Container-Element, dessen Kinder <article>
s oder Elemente mit der Rolle article
sind. Jeder Artikel innerhalb eines Feeds sollte fokussierbar sein, mit tabindex von 0 oder -1. Ein Artikel sollte ins Sichtfeld gescrollt werden, wenn er oder ein enthaltenes Element den Fokus erhält. Wenn das Hinzufügen von Artikeln den Haupt-Browser-Thread beansprucht, stellen Sie sicher, dass aria-busy="true"
auf den Feed selbst gesetzt wird, und setzen Sie ihn zurück auf false
, wenn die Verarbeitung endet, oder der Benutzer sieht die Updates möglicherweise nicht.
Wenn die Anzahl der Artikel bekannt ist, setzen Sie aria-setsize
auf die Artikel selbst. Wenn jedoch die Gesamtanzahl extrem groß, unbestimmt oder sich häufig ändert, setzen Sie aria-setsize="-1"
, um anzuzeigen, dass die Größe des Feeds unbekannt ist.
Ein weiteres Merkmal des Feed-Musters ist das schnelle Lesen: Artikel innerhalb eines Feeds können sowohl einen zugänglichen Namen mit aria-label
als auch eine Beschreibung mit aria-describedby
enthalten, das Screenreadern vorschlägt, welche Elemente nach dem Label gesprochen werden sollen, wenn man nach Artikel navigiert. Indem identifiziert wird, welche Elemente innerhalb eines Artikels den Titel und den Hauptinhalt bereitstellen, können unterstützende Technologien Funktionen bieten, die es Benutzern ermöglichen, von Artikel zu Artikel zu springen und effizient zu erkennen, welche Artikel sie lesen möchten.
Das Feed-Muster ermöglicht zuverlässige Interaktion im Lesemodus der assistiven Technologie durch Festlegung der folgenden Interoperabilitätsvereinbarung zwischen der Webseite und unterstützenden Technologien:
Im Kontext eines Feeds ist der Webseiten-Code verantwortlich für:
- Angemessenes visuelles Scrollen des Inhalts basierend darauf, welcher Artikel DOM-Fokus enthält.
- Laden oder Entfernen von Feed-Artikeln basierend darauf, welcher Artikel DOM-Fokus enthält.
Tastatur-Interaktionen
Es wird empfohlen, die folgenden oder eine ähnliche Schnittstelle zu unterstützen, wenn der Fokus im Feed ist:
- Bild ab: Fokus auf den nächsten Artikel bewegen.
- Bild auf: Fokus auf den vorherigen Artikel bewegen.
- Strg + Ende: Fokus auf das erste fokussierbare Element nach dem Feed bewegen.
- Strg + Anfang: Fokus auf das erste fokussierbare Element vor dem Feed bewegen.
Wenn ein Feed innerhalb eines Feeds verschachtelt ist, wie z.B. ein Kommentar-Feed innerhalb eines Blogbeitrags-Feeds, ist es üblich, mit der Tab-Taste in den verschachtelten Feed zu gehen und einen anderen Schlüssel anzubieten, wie Alt + Bild ab, um von einem 'äußeren' Artikel zum ersten Element in dem verschachtelten Feed dieses Artikels zu wechseln. Navigieren Sie zwischen dem verschachtelten Feed und dem Haupt-Feed mit Strg + Ende, und verschieben Sie den Fokus vom inneren Feed zum nächsten Artikel im äußeren Feed.
WAI-ARIA-Rollen, -Zustände und -Eigenschaften
aria-label
-
Wenn der Feed keinen sichtbaren Titel hat, hat das
feed
-Element ein mitaria-label
angegebenes Label. Wenn es einen Titel hat, siehearia-labelledby
. aria-labelledby
-
Wenn der Feed einen sichtbaren Titel hat, hat das
feed
-Elementaria-labelledby
, das auf das Element verweist, das den Titel enthält. Wenn nicht, fügen Sie einaria-label
hinzu. aria-busy
-
Wenn der Feed beschäftigt ist, z.B. wenn Artikel hinzugefügt oder entfernt werden, setzen Sie
aria-busy="true"
während des Updates. Stellen Sie sicher, dass es auffalse
zurückgesetzt wird, wenn die Operation abgeschlossen ist, oder die Änderungen werden möglicherweise nicht sichtbar. - artikel
-
Jeder Inhaltsbereich in einem Feed sollte in einem
<article>
oder einem Element mit der Rollearticle
enthalten sein. Jederarticle
sollte einaria-labelledby
haben, das auf den Artikeltitel oder ein anderes Kind verweist, das als unterscheidendes Label dienen kann. Jeder Artikel sollte vorzugsweise einaria-describedby
haben, das auf eines oder mehrere Elemente im Artikel verweist, die als Hauptinhalt des Artikels dienen. Jedesarticle
-Element hataria-posinset
auf einen Wert gesetzt, der seine Position im Feed repräsentiert, undaria-setsize
auf einen Wert gesetzt, der entweder die Gesamtanzahl der geladenen Artikel oder die Gesamtzahl im Feed repräsentiert, abhängig davon, welcher Wert für Benutzer hilfreicher ist. Wenn die Gesamtanzahl im Feed unbekannt ist, setzen Siearia-setsize="-1"
.
Erforderliche JavaScript-Funktionen
Keine, außer wie von irgendwelchen Attributen erforderlich. Zum Beispiel, aria-busy
auf true
setzen während der Aktualisierung, falls erforderlich, und danach auf false
, wenn abgeschlossen.
Hinweis: Es liegt in der Verantwortung des Autors, das "oben" beschriebene Tastaturverhalten anzuwenden.
Beispiele
Best Practices
Um eine gute Benutzererfahrung sicherzustellen, vermeiden Sie es, Artikel in der Mitte eines feed
einzufügen oder zu entfernen, laden Sie neue Artikel, bevor der Benutzer das Ende des Feeds erreicht hat, und stellen Sie Tastaturbefehle für das Verschieben des Fokus zwischen Artikeln bereit, damit Tastaturnutzer durch Ihren Feed navigieren können. Siehe Tastatur-Interaktionen.
Spezifikationen
Specification |
---|
Accessible Rich Internet Applications (WAI-ARIA) # feed |
Siehe auch
- Das HTML-
<article>
-Element - Das
<ul>
ungeordnete Listenelement - ARIA:
article
-Rolle - ARIA:
list
-Rolle