Qualität: i18n & Barrierefreiheit
Ein Klick, und FrontTailor liest die laufende App einmal durch: Welche i18n-Schlüssel fehlen, welche Texte sind hartcodiert, wo fehlt eine Übersetzung, welcher Button hat keinen zugänglichen Namen, welcher Text zu wenig Kontrast? Jeder Befund nennt Control, Regel, Behebung und den Link auf die UI5- und WCAG-Doku – und springt auf Wunsch in den Inspector.
- Edition
- ab Pro
- Tab
- „Qualität“
- Abschnitte
- „Texte“ und „Barrierefreiheit“
- Maßstab
- WCAG 2.2 AA und die UI5-Richtlinien zur Barrierefreiheit
- Oberflächen
- DevTools-Panel und Side-Panel
- Auf PROD
- erlaubt, die Prüfung liest nur
So arbeitet die Prüfung
Öffne in den DevTools (F12) das Panel FrontTailor oder das Side-Panel und wähle den Tab Qualität. Vor dem Klick läuft in der Seite nichts. Dann liest FrontTailor die App einmal: Controls, Bindings, Resource Bundles, Beschriftungen und Farben. Alles wird in deinem Browser ausgewertet.
Geprüft wird nur, was zur App gehört: Controls, die einer Komponente der App gehören und gerendert sind. Die Launchpad-Shell, nicht gerenderte Controls und das Innenleben von Bibliotheken bleiben außen vor. Controls aus Templates von Fiori Elements bekommen ihre Texte aus Annotationen und werden deshalb nicht auf hartcodierte Texte geprüft.
Eine Prüfung starten
- Öffne die App auf der Seite, die du prüfen willst, und im Panel den Tab Qualität.
- Klicke Prüfen. Sollen auch die Sprachdateien verglichen werden, klicke stattdessen Übersetzungen laden (de, en).
- Lies oben die Summe aus Fehlern, Warnungen und Hinweisen, darunter die Abschnitte Texte und Barrierefreiheit.
- Hast du etwas behoben oder eine andere Seite der App geöffnet, klicke Erneut prüfen.

- Prüfen, nach dem ersten Lauf Erneut prüfen.
- Übersetzungen laden (de, en): prüft und vergleicht dazu die Sprachdateien.
- Die Summe aus Fehlern, Warnungen und Hinweisen.
- Zeitpunkt, Zahl der Controls, Bundles und Kontrastproben, Dauer; darunter UI5-Version, Sprache und Theme.
Die Prüfung startet auch über die Befehlspalette (Alt+Shift+K, auf dem Mac ⌥+Shift+K) mit dem Befehl i18n- und Barrierefreiheitsprüfung starten. Die Seite merkt sich den letzten Bericht: Nach einem Lauf aus der Palette oder einem Wechsel zwischen DevTools und Side-Panel zeigt der Tab ihn, ohne neu zu prüfen.
| Anzeige | Bedeutung |
|---|---|
| „… Controls stammen aus Fiori-Elements-Templates …“ | So viele Controls sind von der Regel für hartcodierte Texte ausgenommen. |
| „… Texte auf Bildern oder Verläufen: Kontrast nicht berechenbar.“ | Für diese Texte gibt es keine einfarbige Hintergrundfarbe; sie werden beim Kontrast übersprungen. |
| „Große App: Es werden nur die ersten Befunde bzw. Controls gezeigt.“ | Ein Bericht enthält höchstens 1.500 Befunde, Fehler zuerst. |
Abschnitt „Texte“

- Sprache testen: App in einer anderen Sprache neu laden, dann erneut prüfen.
- Filter nach Schweregrad: Alle, Fehler, Warnung, Hinweis, je mit Anzahl.
- Filter nach Regel: Alle Regeln oder eine Regel mit Anzahl.
- Nach Control, Schlüssel oder Text filtern.
- Stand jeder geladenen Sprachdatei: Zahl der Schlüssel oder Datei fehlt, nicht in supportedLocales, nicht ladbar, anderer Ursprung – nicht geladen.
- Ein Befund mit Regel, Schlüssel, Bundle, Text, geladenen Dateien und Behebung.
| Regel | Schwere | Wann |
|---|---|---|
| i18n-Schlüssel fehlt | Fehler | Ein Binding verweist auf einen Schlüssel, den es im Bundle nicht gibt. UI5 zeigt dann den Schlüssel selbst. |
| Text aus einer Ersatzsprache | Warnung | Der Schlüssel fehlt in der Datei der aktuellen Sprache; UI5 zeigt den Text aus einer Ersatzdatei. |
| Schlüssel ungenutzt (Hinweis) | Hinweis | Keine geladene View, kein Fragment, Binding oder Manifest nutzt den Schlüssel. |
| Hartcodierter Text | Warnung | Eine Text-Property ist fest gesetzt statt an {i18n>…} gebunden. Kommt der Text aus Daten, ignoriere den Befund. |
| Übersetzung fehlt | Warnung | Ein Schlüssel fehlt in einer geladenen Sprachdatei (nur nach Übersetzungen laden). |
| Sprachdatei fehlt | Warnung | Eine Sprache steht in supportedLocales, die Datei gibt es aber nicht. |
| Platzhalter weichen zwischen Sprachen ab | Fehler | Eine Übersetzung hat andere Platzhalter ({0}, {1} …) als die Referenz – Werte gehen verloren oder erscheinen als {0}. |
Übersetzungen laden (de, en) lädt die Sprachdateien der eigenen Resource Bundles der App über UI5 – nur vom gleichen Ursprung, nur lesend, höchstens zehn Bundles – und vergleicht sie mit der Standarddatei. Eine Sprache, die nicht in den supportedLocales steht, wird nicht angefragt, sondern als nicht in supportedLocales gemeldet.
Sprache testen
- Prüfe die App einmal, damit der Abschnitt Texte erscheint.
- Wähle unter Sprache testen die Sprache. Daneben steht die aktuelle Sprache.
- Klicke Neu laden mit Sprache. Die App lädt mit dem URL-Parameter
sap-ui-languageneu – Bundles, Texte von Fiori Elements und OData-Texte kommen dann in der neuen Sprache. - Klicke im Tab Qualität auf Prüfen.
Mehr in Werkzeuge öffnet die Karte Sprache im Tab Werkzeuge: mit allen Sprachen der App, den SAP-Testsprachen, RTL und dem Umschalten ohne Neuladen.
Abschnitt „Barrierefreiheit“

- Der Befund: Regel, Schwere, Control-Typ und ID.
- Die Behebung in einem Satz.
- UI5-Dokumentation und WCAG 2.2 – 1.3.1 öffnen die passenden Seiten.
- Im Inspector zeigen wählt das Control im Inspector aus.
- In der Seite hervorheben rahmt das Control vier Sekunden lang ein.
- Als Markdown kopieren nimmt den Befund mit, etwa für ein Ticket.
- CSV exportieren, daneben Markdown exportieren und Alle als Markdown kopieren.
| Regel | WCAG | Schwere |
|---|---|---|
| Control ohne zugänglichen Namen | 4.1.2 | Fehler |
| Icon-Button ohne Tooltip | 4.1.2 | Warnung |
| Bild oder Icon ohne Alternativtext | 1.1.1 | Fehler bei Bildern, Warnung bei Icons |
| Klickbares Bild als dekorativ markiert | 1.1.1 | Warnung |
| Formularfeld ohne Label | 3.3.2 | Warnung |
| Tabelle oder Liste ohne Titel | 1.3.1 | Warnung bei Tabellen, Hinweis bei Listen |
| Spalte ohne Überschrift | 1.3.1 | Fehler |
| ARIA-Verweis ins Leere | 4.1.2 | Fehler |
| Fokussierbares Element in verstecktem Container | 4.1.2 | Fehler |
| Textkontrast zu gering | 1.4.3 | Fehler |
Beim Kontrast gilt 4,5:1, für großen Text (ab 24 px oder ab 18,66 px fett) 3:1 – ohne Runden. Deaktivierte Elemente sind ausgenommen, Texte auf Bildern oder Verläufen werden übersprungen.

- Rahmen und Etikett mit Control-Typ und ID.
Befunde filtern und weitergeben
Gleiche Befunde – etwa geklonte Listeneinträge oder wiederholte Texte – fasst FrontTailor zusammen und zählt sie. Beide Abschnitte haben dieselben Filter und Exporte; der Export nimmt die gerade gefilterten Befunde.
| Element | Wirkung |
|---|---|
| Alle · Fehler · Warnung · Hinweis | Filter nach Schweregrad, je mit Anzahl |
| Alle Regeln | Filter nach einer Regel |
| Nach Control, Schlüssel oder Text filtern | Freitext; darunter „x von y“ |
| Im Inspector zeigen | wechselt in den Tab Inspector und wählt das Control aus; ist es nicht mehr in der Seite, sagt das ein Hinweis |
| In der Seite hervorheben | Rahmen um das Control, vier Sekunden |
| Als Markdown kopieren | einen Befund in die Zwischenablage |
| CSV exportieren | UTF-8 mit BOM und CRLF; Zellen, die mit =, +, - oder @ beginnen, bekommen ein ' davor |
| Markdown exportieren · Alle als Markdown kopieren | Bericht mit Seite, Zeitpunkt und den gefilterten Befunden |
Mit der KI-Leiste und deinem eigenen Schlüssel gibt es zwei Einstiege: Fehlende Texte übersetzen im Abschnitt Texte macht aus fehlenden Schlüsseln und Übersetzungen .properties-Snippets je Sprache, Mit KI beheben im Abschnitt Barrierefreiheit schlägt je Befund eine Korrektur mit WCAG-Kriterium vor. Gesendet wird erst nach Vorschau und Klick.
Was die Prüfung nicht sieht
- Ungenutzte Schlüssel sind nur ein Hinweis: Controller, Formatter und nicht geladene Views sieht die Prüfung nicht.
- Fehlende Schlüssel und hartcodierte Texte findet sie nur in gerenderten Views. Öffne Dialoge und weitere Seiten und prüfe erneut.
- Der zugängliche Name ist eine Näherung an das, was ein Screenreader ansagt.
- Kein Kontrast für Nicht-Text-Elemente (WCAG 1.4.11), keine Prüfung von Tastatur und Fokusreihenfolge.
Typische Probleme
| Problem | Ursache und Lösung |
|---|---|
| Viele Hinweise Schlüssel ungenutzt | Die Schlüssel werden vermutlich im Controller mit getText() genutzt. Erst nach einer Suche im Code löschen. |
| Keine Befunde in einer App mit Fiori Elements | Texte aus Annotationen und Templates sind von der Regel für hartcodierte Texte ausgenommen. Die Meta-Zeile nennt, wie viele Controls das betrifft. |
| Ein Dialog fehlt im Bericht | Geprüft wird nur, was gerendert ist. Dialog öffnen, Erneut prüfen. |
| anderer Ursprung – nicht geladen | Das Bundle liegt auf einem anderen Host. Übersetzungen werden nur vom Ursprung der App geladen. |
| Das Control ist nicht mehr in der Seite. | Die App hat neu gerendert oder navigiert. Erneut prüfen. |
Siehe auch
- Funktionen im Überblick Funktionen · Qualität
- Zum Nachlesen SAPUI5 – The Comprehensive Guide (SAP PRESS)
- Hilfe von Menschen Fiori-, UI5- und CAP-Apps nach Maß
- Doku Inspector
- Doku Werkzeuge
- Doku Fiori Guidelines
- Doku KI-Assistent
- Belege ADR-0331