contao / core

Contao 3 → see contao/contao for Contao 4
GNU Lesser General Public License v3.0
492 stars 213 forks source link

Menü-Icon (C4 Mobilansicht) nicht tastaturbedienbar #8526

Closed NinaG closed 7 years ago

NinaG commented 7 years ago

In kleinen Viewports wird die linke Spalte ausgeblendet und stattdessen erscheint im Kopfbereich das "Hamburger"-Icon. Für Tastaturnutzer und Screenreader-Nutzer ergeben sich an der Stelle mehrere Probleme:

  1. Wenn man den Kopfbereich mit dem Tabulator durchtabbt, erreicht man nacheinander das Logo, die Benutzerinfo, FE-Vorschau und Abmeldefunktion. Das Menü-Icon ist hingegen via Tastatur nicht erreichbar. Die Ursache liegt darin, dass das Menü-Icon nur ein Bild, ohne Link o.ä. ist. Dadurch wird es nicht anvisiert. Man könnte das Bild notfalls mit dem Attribut tabindex="0" fokusierbar machen, aber selbst wenn man es dann fokusieren kann, ist im Menü-Script noch nicht vorgesehen, dass man das Menü auch via Tastatur (z.B. mit Enter o.ä.) aktivieren kann. Idealerweise sollte das Menü-Script so abgeändert werden, dass das Bild doch einen Link hat (dann kann man sich das Spiel mit dem tabindex-Attribut sparen) und auf Tastatureingabe das Menü einblendet.
  2. Das Menü-Icon hat keinen Alternativtext. Es ist also für einen Screenreader-Nutzer nicht erkennbar, worum es sich dabei handelt.
  3. Das Menü lässt sich scheinbar nur dann wieder ausblenden, wenn man erneut auf das Menü-Icon klickt. Es wäre empfehlenswert, wenn es auch via Esc-Taste ausgeblendet werden kann, damit der Weg zurück zum Menü-Icon gespart werden kann.
NinaG commented 7 years ago

Hier noch ein paar Anregungen, zu Off-Canvas-Menüs, die hier auch zum Tragen kommen und das Contao4-Backend barrierefreier machen:

NinaG commented 7 years ago

Beide Toggle-Button-Beispiele (ohne sichtbaren Beschriftungstext, mit wäre aber besser):

Hier mal der einfach angepasste Code für einen Menü-Button mit Inline-SVG: <button class="nav-toggle" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 512 512" role="img" aria-labelledby="burger-title" ><title id="burger-title">Navigation öffnen</title><path d="M462 163.5H50v-65h412v65zm0 60H50v65h412v-65zm0 125H50v65h412v-65z" fill="#fff"/></svg></button>

Wenn nicht gewünscht ist, dass der Toggle-Button ein Inline-SVG enthält, könnte es natürlich auch als normales IMG im Button-Code hinterlegt werden: <button class="nav-toggle" type="button" title="Navigation öffnen"><img src="system/themes/flexible/icons/burger.svg" alt="Menü" id="burger" height="25" width="25"></button>

leofeyer commented 7 years ago

Behoben in contao/core-bundle@033bfd54877eab42051afc770ad87447b6bf8812.

NinaG commented 7 years ago

Vielen Dank für die schnelle Reaktion! Hast du die anderen Sachen die ich unten in diesem Ticket genannt habe, auch im Blick (Fokus, weitere ARIA-Angaben in den Navlistenpunkten)? Oder soll ich die lieber einzeln als Tickets anlegen?

leofeyer commented 7 years ago

Am besten machst Du gleich einen Pull-Request.