Accessibility-Guidelines
Start
Komponenten
  • BFSG - Anforderungen an Onlineshops
  • WAI ARIA - Lexikon
Beitragen
Start
Komponenten
  • BFSG - Anforderungen an Onlineshops
  • WAI ARIA - Lexikon
Beitragen
  • Komponenten

    • Einleitung
    • Buttons
      • Text-Button
      • Icon Button
      • Text + Icon Button
      • Menu-Button
      • Account Menu Button (TradelinePro, B2B)
      • Status-Buttons
    • Bilder
      • Informative Bilder
      • Dekorative Bilder
      • Funktionale Bilder
      • Bildgruppen
    • Inputs
      • Searchbar
    • USP Bar

Account Menu Button (TradelinePro, B2B)

Information

Achtung: Diese Seite bezieht sich ausschließlich auf die Account-Menu-Button Komponente, welche durch das TradelinePro Enterprise-Plugin aktiviert wird.

Platzhalter für Grafik: Responsives Verhalten der Benefit-Bar

Der Account Menu Button ist eine zentrale, Tradeline-Pro spezifische Komponente für die Nutzerverwaltung, die den aktuellen Kontext des angemeldeten Benutzers anzeigt und Zugriff auf kontobezogene Funktionen ermöglicht.

Inhalt dieser Seite:

  • Zweck und Herausforderungen
  • Struktur und Aufbau
  • Barrierefreiheit
  • Best Practices
  • States und Interaktionen
  • JavaScript-Verhalten (Optionales Beispiel)
  • Checkliste für Entwickler

Zweck und Herausforderungen

Der Account Menu Button dient als zentraler Zugangspunkt für Kontoeinstellungen und den Firmenwechsel. Die Herausforderung besteht darin, komplexe Informationen kompakt darzustellen und dabei Barrierefreiheit zu gewährleisten.

Struktur und Aufbau

Der Button besteht aus folgenden Hauptelementen:

  1. E-Mail-Adresse des angemeldeten Nutzers
  2. Badge für die aktive Firma
  3. Benutzer-Icon
  4. Chevron-Icon für das Dropdown-Menü

Hier ein Beispiel-Pattern für die grundlegende HTML-Struktur:

<button 
  type="button"
  class="account-menu-button"
  aria-haspopup="menu"
  aria-expanded="false"
  aria-controls="account-menu-content">
  
  <span class="account-info">
    <span class="email">testus.testmann@musterfirma.de</span>
    <span class="company-badge" aria-label="Aktive Firma:">Musterfirma</span>
  </span>
  
  <span class="icons" aria-hidden="true">
    <span class="user-icon">
      <svg focusable="false" width="24" height="24"><!-- SVG-Code --></svg>
    </span>
    <span class="chevron-icon">
      <svg focusable="false" width="24" height="24"><!-- SVG-Code --></svg>
    </span>
  </span>
</button>

<div id="account-menu-content" 
  class="menu" 
  role="menu" 
  hidden>
  <!-- Menüinhalt -->
</div>

Notiz

Die Klassennamen und Demo-Daten dienen der Veranschaulichung der Struktur. Das Pattern demonstriert die korrekte Verwendung von ARIA-Attributen für optimale Accessibility.

Erklärung:

  • Der Button verwendet type="button" um das standardmäßige Submit-Verhalten zu verhindern und die Rolle als interaktives Element klar zu definieren.
  • Das Attribut aria-haspopup="menu" signalisiert Screenreader-Nutzern, dass der Button ein Menü öffnet.
  • aria-expanded zeigt den aktuellen Zustand des Menüs an (offen/geschlossen) und wird via JavaScript aktualisiert.
  • aria-controls verknüpft den Button mit seinem zugehörigen Menü durch die ID-Referenz.
  • Der .account-info Container gruppiert die Nutzerinformationen logisch zusammen.
  • Die E-Mail-Adresse ist in einem separaten <span class="email"> für bessere Strukturierung und mögliche CSS-Styling-Optionen.
  • Das Company-Badge nutzt aria-label="Aktive Firma:" um Screenreader-Nutzern zusätzlichen Kontext zu geben.
  • Der Icons-Container ist mit aria-hidden="true" markiert, da die Icons rein dekorativ sind und keine zusätzlichen Informationen für Screenreader-Nutzer bieten.
  • Die SVGs sind mit focusable="false" versehen, um unerwünschte Fokuspunkte in der Tab-Reihenfolge zu vermeiden.
  • Das Menü selbst nutzt role="menu" für die korrekte semantische Bedeutung und hidden für initiales Verbergen.
  • Die gesamte Struktur ermöglicht eine klare Tab-Reihenfolge, bei der der Button als einzelnes Element fokussierbar ist.

Barrierefreiheit

  • Verwende aria-haspopup="menu" und aria-expanded für das Dropdown-Verhalten
  • Stelle sicher, dass der Button per Tastatur bedienbar ist
  • Implementiere Escape-Taste zum schließen des Menüs
  • Nutze aussagekräftige ARIA-Labels
  • Vermeide rein visuelle Zustandsanzeigen (color-independence)

Best Practices

  • Setze eine Mindest- oder Maximalbreite für optimale Lesbarkeit
  • Implementiere eine Ellipsis für lange E-Mail-Adressen mit Tooltip
  • Stelle konsistente Hover- und Fokus-States bereit
  • Nutze semantisch korrektes HTML
  • Gewährleiste Touch-Targets von mindestens 44x44px

States und Interaktionen

Der Button sollte folgende Zustände unterstützen:

  • Default
  • Hover
  • Focus
  • Active/Pressed
  • Expanded (Menü geöffnet)
  • Disabled (optional)

JavaScript-Verhalten (Optionales Beispiel)

const button = document.querySelector('.account-menu-button');
const menu = document.querySelector('#account-menu-content');

button.addEventListener('click', () => {
  const isExpanded = button.getAttribute('aria-expanded') === 'true';
  button.setAttribute('aria-expanded', !isExpanded);
  menu.hidden = isExpanded;
});

// Schließen bei Escape
document.addEventListener('keydown', (e) => {
  if (e.key === 'Escape' && !menu.hidden) {
    button.setAttribute('aria-expanded', 'false');
    menu.hidden = true;
    button.focus();
  }
});

Notiz

Dies ist ein rein optionales Beispiel, welches zur Umsetzung bei Bedarf hinzugezogen werden kann. Eine sinnvolle Implementierung kann abhängig von den technischen Gegebenheiten variieren.

Checkliste für Entwickler

Warnung

Hier ist es wichtig, dass du die ARIA-Attribute korrekt gewählt sind. Für Screenreader-Nutzer sind falsche ARIA-Attribute schlimmer als garkeine ARIA-Attribute.


Information

Gerne darfst du aktiv zur Verbesserung dieses Lösungsansatzes beitragen. Wenn du Vorschläge oder Optimierungen hast, teile sie bitte mit dem entsprechenden Ansprechpartner.

Last Updated:
Contributors: dgrossekleimann
Prev
Menu-Button
Next
Status-Buttons