Problem 1: Defekte Kopfzeilen-Navigation / DOM-Manipulation

Problem: Antwort-Post-Elemente werden beim anfänglichen Laden der Seite nicht im Document Object Model (DOM) angezeigt und aus dem DOM entfernt, nachdem der Screenreader sie passiert hat. Dies führt dazu, dass Windows-Screenreader den Zugriff auf Inhalte verlieren und VoiceOver in Bezug auf die Tools, die zur Navigation auf der Seite verwendet werden können, eingeschränkt ist.

Spezifisches Verhalten:

● Beim Versuch, vom Hauptbeitrag zu Antwortbeiträgen zu navigieren, sind die für die Antwortbeiträge verwendeten Elemente noch nicht im DOM gerendert. Daher können Benutzer keine Schnellnavigation verwenden, um zu einem beliebigen Element in einem Antwortbeitrag zu navigieren.

● Einzelne Antwortbeiträge werden erst dann als Überschriften der Ebene 2 im DOM markiert, wenn der Screenreader auf sie fokussiert ist. Dies erfordert, dass Benutzer jedes Element auf der Seite navigieren, um Antwortbeiträge zu erreichen.

● Das ANDI-Barrierefreiheitstool zeigt nach Interaktionen mit Elementen eine sich ständig ändernde Überschriftenstruktur an.

● Elemente zeigen Fehler wie „aus dem DOM entfernt“ an, wenn versucht wird, auf sie zuzugreifen.

● Der Screenreader verliert die konsistente Ansicht der Seitenstruktur.

Plattformdetails:

● JAWS/NVDA: Vollständiger Ausfall – Antwortüberschriften sind überhaupt nicht zugänglich.

● VoiceOver: Zugriff über Schnellnavigation, aber kein Rotorzugriff – da VoiceOver durch Lesen der direkten Seite funktioniert, können Benutzer Antwortüberschriften mit Schnellnavigationstasten navigieren. Innerhalb des Rotors sind jedoch nur Elemente zugänglich, auf die der Screenreader fokussiert ist.

Warum kritisch: Screenreader-Benutzer können die Hauptaufgabe des Lesens von Diskussionsantworten nicht erfüllen. Dies ist eine vollständige Barriere für die Teilnahme an Diskussionen.

2 „Gefällt mir“

Diese Probleme wurden erstmals unter Screen Reader Accessibility issues gemeldet. Bitte unterstützen Sie bei der Lösung, da eine ganze Gemeinschaft von blinden und sehbehinderten Benutzern grundlegende Funktionen auf dem Diskussionsforum nicht ausführen kann.

2 „Gefällt mir“

Vielen Dank für die Meldung dieser Probleme!

Wissen Sie, auf welche Themen dies speziell getestet wurde? Es wäre hilfreich, eine gemeinsame Referenz dafür zu haben, um sicherzustellen, dass wir dieselben Probleme sehen. Es gibt viele Variationen bei den Post-Inhalten, daher möchte ich sicherstellen, dass wir unsere Bemühungen auf den richtigen Bereich konzentrieren.

Wir könnten try.discourse.org verwenden oder, wenn das hilft, einen Post hier auf Meta als Referenz nutzen.

Mit “schneller Navigation” scheinen Sie sich speziell auf Elementlisten zu beziehen? Ich kann bestätigen, dass sowohl in NVDA als auch in VoiceOver nur der aktuell im DOM verfügbare Inhalt in Elementlisten zugänglich ist. Dies gilt auch für sehende Benutzer und ist ein grundlegender Bestandteil der Funktionsweise von Discourse. Anstelle einer manuellen Paginierung laden wir Inhalte, während jemand nach unten/oben auf der Seite scrollt.

Dies ist normalerweise das, was ich erwarte, wenn jemand von “schneller Navigation” spricht, obwohl mir bewusst ist, dass die Terminologie zwischen Anwendungen nicht immer einheitlich ist.

Ich habe bestätigt, dass die Navigation von Element zu Element in NVDA und VoiceOver funktioniert, aber ich habe ein Problem mit unseren “kleinen Posts” innerhalb von Themen identifiziert, das die Navigation verhindern kann, und werde eine Korrektur dafür anwenden.

Ein “kleiner Post” ist eine Themenstatusaktualisierung wie angeheftet, geschlossen/geöffnet, aktiviert usw. Das Problem bei diesen ist, dass sie keine interne Überschrift wie normale Posts haben. Wenn sie also auf der Schwelle liegen, bevor weitere Posts geladen werden, während sie navigieren… kann ein Benutzer gestoppt werden und nur “keine nächste Überschrift” hören.

Automatisierte Tools wie ANDI erkennen oft DOM-Änderungen in Webanwendungen wie Discourse nicht. Sie sind im Allgemeinen für einfachere Szenarien wie statische Seiten konzipiert. Während wir diese Tools manchmal verwenden, um Probleme selbst zu identifizieren, müssen wir uns in komplexeren Szenarien wie der Navigation darauf konzentrieren, was wir durch manuelle Tests reproduzieren können.

Ich gehe davon aus, dass sich dies ebenfalls auf Elementlisten bezieht? Dies ist zu erwarten, aber vielleicht gibt es eine Verbesserung, die wir in Betracht ziehen können, um Elementlisten in Discourse funktionsfähig zu machen. Ich werde dies mit unseren Ingenieuren besprechen, um Input zu erhalten.

Bezieht sich dies auch speziell auf eine Elementliste? Wie oben erwähnt, habe ich die Navigation von NVDA und VoiceOver für die Navigation von Element zu Element getestet und kann bestätigen, dass dies funktioniert… aber wenn es einen bestimmten Kontext gibt, in dem es nicht funktioniert, können wir uns das genauer ansehen.

3 „Gefällt mir“

Latest Expanded Core Curriculum/Mastering the Monarch topics - APH Hive Discussion Board

Die Express-Aktivitäten wurden getestet.

1 „Gefällt mir“

Kurzes Update dazu: Ich habe daran gearbeitet, unsere Landmarken zu verbessern, um eine bessere Navigation in einer Elementliste zu ermöglichen.

Die Navigation von Überschriften in Elementlisten bleibt unverändert, aber hoffentlich bietet dies eine vernünftige Alternative. Die Änderungen sind hier aufgeführt: A11Y: improve landmark navigation and add aria-labels to post controls by awesomerobot · Pull Request #34421 · discourse/discourse · GitHub

Kurz gesagt, dies bewirkt Folgendes:

  • Bereitstellung von Landmarken-Regionen für alle Beiträge im DOM
  • Hinzufügen einer Landmarken-Region, die deutlicher macht, dass sich oben/unten weitere Beiträge befinden – wir laden/entladen Beiträge, sodass wir keine manuelle Paginierung verwenden müssen. Wenn ein Thema Hunderte von Beiträgen gleichzeitig im DOM geladen hätte, könnte dies zu Leistungsproblemen führen.

Es wäre eine sehr komplizierte Änderung, den gesamten Überschrifteninhalt im DOM zugänglich zu machen, ohne die Leistung für alle zu beeinträchtigen. Dies ist also ein Mittelweg. Obwohl nicht perfekt, lädt die Navigation zu den Bereichen “Mehr Inhalt laden” ordnungsgemäß weitere Beiträge, woraufhin die Elementliste wieder geöffnet werden kann.

  • Ich habe eine Aktualisierung vorgenommen, um die Beitragssteuerelemente von einer Navigationsregion in eine Symbolleistenregion zu ändern. Dies ist semantisch genauer und ermöglicht es der Landmarken-Regionsliste, sich auf Beiträge zu konzentrieren.

  • Ich habe auch die Beschriftungen der Beitragssteuerelemente verbessert, während ich schon dabei war.

Wir gehen also von einer eher spärlichen Landmarken-Elementliste innerhalb von Themen aus

zu etwas, das die Themenstruktur deutlicher darstellt

Dieses Update wird im Laufe dieser Woche veröffentlicht. Ich bin gespannt auf Ihr Feedback zu diesen Änderungen, sobald sie verfügbar sind, @adress!

4 „Gefällt mir“

Hallo @awesomerobot, wir wurden von APH für eine Zugänglichkeitsberatung zu diesem Thema beauftragt. Ich habe unten ein paar Videolinks bereitgestellt, die unser Hauptproblem in Bezug auf diesen Thread zeigen. Sie werden das Problem in der ersten Aufnahme ab Zeitstempel 08:36 in der ersten Aufnahme sehen.
Discourse Accessibility Audit JAWS
Dies hat nichts mit der Elementliste zu tun, sondern mit dem, was wir „Quick Keys“ oder „Quick Navigation“ nennen würden, bei der wir zum nächsten HTML-Elementtyp (in diesem Fall Überschriften) navigieren.

Das Problem bei der Behebung dieses Problems durch die Erstellung neuer Landmarks ist, dass Landmarks normalerweise für übergeordnete Abschnitte reserviert sind. Für einen Screenreader-Benutzer würde die Navigation zwischen kleinen Abschnitten der Seite mit Landmarks den schnellen Zugriff auf die großen Bereiche der Seite wie das Navigationsbanner beeinträchtigen. Dies verstößt auch gegen die WCAG-Standards der Ebene A und schafft einen Bypass-Block.

1 „Gefällt mir“

Großartig, danke für die zusätzlichen Details! Ein Video wird enorm helfen – es scheint, dass das Video passwortgeschützt ist. Können Sie es entweder entsperren oder den Code an accessibility@discourse.org senden?

1 „Gefällt mir“

Ja, entschuldigen Sie das. Hier ist der Link mit eingebettetem Passcode. Video Conferencing, Web Conferencing, Webinars, Screen Sharing - Zoom
Passcode: .kBwdK3a

1 „Gefällt mir“

Hallo @awesomerobot, ich bin ein Kollege von Cody und ein Accessibility Engineer. Ich habe mir das Repository angesehen, um das Problem zu diagnostizieren. Wie Sie vielleicht bereits wissen, scheint das Kernproblem darin zu bestehen, dass (1) Inhalte in verschleierten Beiträgen für Screenreader nicht sichtbar sind und (2) Beiträge nur dann entschleiert werden, wenn sie sich im Ansichtsbereich eines Benutzers gemäß PostStreamViewportTracker befinden.

Bei der Überlegung einer möglichen Lösung möchte ich zwei Dinge optimieren: (1) die Navigation jedes Beitrags nach Überschrift mit Screenreadern ermöglichen und (2) Änderungen am Discourse-Repository und Auswirkungen auf die Leistung minimieren.

Der von mir empfohlene Ansatz besteht darin, ein leichtgewichtige Wrapper für jeden geladenen Beitrag beizubehalten, der die semantische H2-Überschrift für die Navigationsüberschrift enthält, während der Hauptinhalt des Beitrags verschleiert bleibt. Dies hält die Überschriften für assistive Technologien stabil, ohne das DOM auf der gesamten Seite aufzublähen. Wenn ein Benutzer über die Überschrift-Navigation zu einer H2-Überschrift eines Beitrags gelangt, löst der Screenreader einen Seiten-Scroll aus, der wiederum den Hauptinhalt des Beitrags an Ort und Stelle entschleiert.

Die Machbarkeit dieser Lösung hängt davon ab, wann der nächste Stapel von Beiträgen geladen wird. Eine optionale Verbesserung ist eine reine Screenreader-Überschrift „Weitere Beiträge laden“ (ähnlich der in Ihrem PR vorgeschlagenen „Region zum Laden weiterer Beiträge“) am Ende der Liste der geladenen Beiträge. Wenn diese Überschrift in Sicht kommt oder aus dem Überschriften-Rotor ausgewählt wird, lädt sie den nächsten Stapel und kündigt die Fertigstellung über eine aria-live=polite-Nachricht an.

3 „Gefällt mir“

Vielen Dank für das Feedback und die Vorschläge, wir werden dies intern besprechen und mit einem Update darauf zurückkommen!

1 „Gefällt mir“

Dies ist der Ansatz, an dem wir derzeit in A11Y: improve heading-to-heading nav, fix infinite scrolling for screenreaders by awesomerobot · Pull Request #34589 · discourse/discourse · GitHub arbeiten.

Wie Sie vorgeschlagen haben, fügen wir allen Beiträgen (ob verdeckt oder nicht) einige leichte, nur für Screenreader bestimmte Überschriften hinzu, sowie eine Überschrift, die das Laden weiterer Beiträge auslöst, zusammen mit der Ankündigung, dass das Laden abgeschlossen ist.

Es ist noch in Arbeit, daher muss es noch verfeinert werden, aber hoffentlich können wir diese Korrektur bald für alle verfügbar machen.

1 „Gefällt mir“

Kurzes Update zu den Zeitplanerwartungen: Wir befinden uns für die nächste Woche in einem Pre-Release-Freeze und ein Großteil unseres Teams wird auf unserem jährlichen Treffen sein … daher wird es wahrscheinlich ein paar Wochen dauern, bis diese Änderung umgesetzt werden kann.

2 „Gefällt mir“

Hallo! Seit dem 5. November haben wir ein Update zusammengeführt, das die Navigation nach Themenüberschriften verbessern soll. Weitere Details hier:

4 „Gefällt mir“