fix(player): keyboard focus, contrast and ARIA for controls and settings

Dock and settings-panel icon buttons draw a 2px --pc-text ring on
:focus-visible, and Material's theme-coloured focus layer is off, so
keyboard focus shows on video in the light theme too. A focused selected
subtitle swatch now differs from one that is only selected.

Settings headings read --pc-text-secondary on denser glass
(--pc-glass-bg-dense, 0.86): 4.5:1 or more over mid-grey and white
frames. They wrap (overflow-wrap: anywhere, hyphens: auto), so long
German and Russian headings stay inside the sheet's heading column.

The settings panel is now radio groups only (SettingsRadioGroupDirective
over a CDK FocusKeyManager): one Tab stop per group on the checked option,
arrows, Home and End move focus without applying, and Space/Enter checks.
The dialog and its groups are named by real h2/h3/h4 headings, the
load-file action sits outside the subtitle radio group, the subtitle and
speed chips carry their value in their name ("Subtitles: English"), and
tune has aria-haspopup="dialog".

Adds a web E2E for the keyboard path in both themes with an axe check on
the open panel, and de/ru sheet heading wrapping; axe-core is a new dev
dependency for it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Opus 5.5 committed 2026-09-30 20:45:12 +02:00
1 parent 0524e72b9f
commit cdc208dbff
37 files changed
+1369 -256

No files matched your search

+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "ترجمة {{index}}",
"PLAYBACK_SPEED": "سرعة التشغيل",
"SPEED_TOOLTIP": "السرعة: {{speed}}",
"SUBTITLES_TOOLTIP": "الترجمات: {{subtitles}}",
"ASPECT_RATIO": "نسبة العرض إلى الارتفاع",
"ASPECT_TOOLTIP": "النسبة: {{aspect}}",
"ASPECT_DEFAULT": "افتراضي",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "ترجمة {{index}}",
"PLAYBACK_SPEED": "سرعة التشغيل",
"SPEED_TOOLTIP": "السرعة: {{speed}}",
"SUBTITLES_TOOLTIP": "الترجمة: {{subtitles}}",
"ASPECT_RATIO": "نسبة الأبعاد",
"ASPECT_TOOLTIP": "الأبعاد: {{aspect}}",
"ASPECT_DEFAULT": "افتراضي",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Субтытры {{index}}",
"PLAYBACK_SPEED": "Хуткасць прайгравання",
"SPEED_TOOLTIP": "Хуткасць: {{speed}}",
"SUBTITLES_TOOLTIP": "Субтытры: {{subtitles}}",
"ASPECT_RATIO": "Суадносіны бакоў",
"ASPECT_TOOLTIP": "Суадносіны: {{aspect}}",
"ASPECT_DEFAULT": "Па змаўчанні",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Untertitel {{index}}",
"PLAYBACK_SPEED": "Wiedergabegeschwindigkeit",
"SPEED_TOOLTIP": "Geschwindigkeit: {{speed}}",
"SUBTITLES_TOOLTIP": "Untertitel: {{subtitles}}",
"ASPECT_RATIO": "Seitenverhältnis",
"ASPECT_TOOLTIP": "Seitenverhältnis: {{aspect}}",
"ASPECT_DEFAULT": "Standard",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Υπότιτλος {{index}}",
"PLAYBACK_SPEED": "Ταχύτητα αναπαραγωγής",
"SPEED_TOOLTIP": "Ταχύτητα: {{speed}}",
"SUBTITLES_TOOLTIP": "Υπότιτλοι: {{subtitles}}",
"ASPECT_RATIO": "Αναλογία εικόνας",
"ASPECT_TOOLTIP": "Αναλογία: {{aspect}}",
"ASPECT_DEFAULT": "Προεπιλογή",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Subtitle {{index}}",
"PLAYBACK_SPEED": "Playback speed",
"SPEED_TOOLTIP": "Speed: {{speed}}",
"SUBTITLES_TOOLTIP": "Subtitles: {{subtitles}}",
"ASPECT_RATIO": "Aspect ratio",
"ASPECT_TOOLTIP": "Aspect: {{aspect}}",
"ASPECT_DEFAULT": "Default",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Subtítulo {{index}}",
"PLAYBACK_SPEED": "Velocidad de reproducción",
"SPEED_TOOLTIP": "Velocidad: {{speed}}",
"SUBTITLES_TOOLTIP": "Subtítulos: {{subtitles}}",
"ASPECT_RATIO": "Relación de aspecto",
"ASPECT_TOOLTIP": "Aspecto: {{aspect}}",
"ASPECT_DEFAULT": "Predeterminada",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Sous-titre {{index}}",
"PLAYBACK_SPEED": "Vitesse de lecture",
"SPEED_TOOLTIP": "Vitesse : {{speed}}",
"SUBTITLES_TOOLTIP": "Sous-titres : {{subtitles}}",
"ASPECT_RATIO": "Format d'image",
"ASPECT_TOOLTIP": "Format : {{aspect}}",
"ASPECT_DEFAULT": "Par défaut",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "{{index}}. feliratsáv",
"PLAYBACK_SPEED": "Lejátszási sebesség",
"SPEED_TOOLTIP": "Sebesség: {{speed}}",
"SUBTITLES_TOOLTIP": "Feliratok: {{subtitles}}",
"ASPECT_RATIO": "Képarány",
"ASPECT_TOOLTIP": "Képarány: {{aspect}}",
"ASPECT_DEFAULT": "Alapértelmezett",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Sottotitoli {{index}}",
"PLAYBACK_SPEED": "Velocità di riproduzione",
"SPEED_TOOLTIP": "Velocità: {{speed}}",
"SUBTITLES_TOOLTIP": "Sottotitoli: {{subtitles}}",
"ASPECT_RATIO": "Proporzioni",
"ASPECT_TOOLTIP": "Proporzioni: {{aspect}}",
"ASPECT_DEFAULT": "Predefinite",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "字幕 {{index}}",
"PLAYBACK_SPEED": "再生速度",
"SPEED_TOOLTIP": "速度:{{speed}}",
"SUBTITLES_TOOLTIP": "字幕:{{subtitles}}",
"ASPECT_RATIO": "アスペクト比",
"ASPECT_TOOLTIP": "アスペクト比:{{aspect}}",
"ASPECT_DEFAULT": "デフォルト",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "자막 {{index}}",
"PLAYBACK_SPEED": "재생 속도",
"SPEED_TOOLTIP": "속도: {{speed}}",
"SUBTITLES_TOOLTIP": "자막: {{subtitles}}",
"ASPECT_RATIO": "화면 비율",
"ASPECT_TOOLTIP": "비율: {{aspect}}",
"ASPECT_DEFAULT": "기본",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Ondertitel {{index}}",
"PLAYBACK_SPEED": "Afspeelsnelheid",
"SPEED_TOOLTIP": "Snelheid: {{speed}}",
"SUBTITLES_TOOLTIP": "Ondertiteling: {{subtitles}}",
"ASPECT_RATIO": "Beeldverhouding",
"ASPECT_TOOLTIP": "Beeldverhouding: {{aspect}}",
"ASPECT_DEFAULT": "Standaard",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Napisy {{index}}",
"PLAYBACK_SPEED": "Prędkość odtwarzania",
"SPEED_TOOLTIP": "Prędkość: {{speed}}",
"SUBTITLES_TOOLTIP": "Napisy: {{subtitles}}",
"ASPECT_RATIO": "Proporcje obrazu",
"ASPECT_TOOLTIP": "Proporcje: {{aspect}}",
"ASPECT_DEFAULT": "Domyślne",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Legenda {{index}}",
"PLAYBACK_SPEED": "Velocidade de reprodução",
"SPEED_TOOLTIP": "Velocidade: {{speed}}",
"SUBTITLES_TOOLTIP": "Legendas: {{subtitles}}",
"ASPECT_RATIO": "Proporção da imagem",
"ASPECT_TOOLTIP": "Proporção: {{aspect}}",
"ASPECT_DEFAULT": "Padrão",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Субтитры {{index}}",
"PLAYBACK_SPEED": "Скорость воспроизведения",
"SPEED_TOOLTIP": "Скорость: {{speed}}",
"SUBTITLES_TOOLTIP": "Субтитры: {{subtitles}}",
"ASPECT_RATIO": "Соотношение сторон",
"ASPECT_TOOLTIP": "Соотношение: {{aspect}}",
"ASPECT_DEFAULT": "По умолчанию",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "Altyazı {{index}}",
"PLAYBACK_SPEED": "Oynatma hızı",
"SPEED_TOOLTIP": "Hız: {{speed}}",
"SUBTITLES_TOOLTIP": "Altyazılar: {{subtitles}}",
"ASPECT_RATIO": "En boy oranı",
"ASPECT_TOOLTIP": "En boy oranı: {{aspect}}",
"ASPECT_DEFAULT": "Varsayılan",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "字幕 {{index}}",
"PLAYBACK_SPEED": "播放速度",
"SPEED_TOOLTIP": "速度:{{speed}}",
"SUBTITLES_TOOLTIP": "字幕:{{subtitles}}",
"ASPECT_RATIO": "宽高比",
"ASPECT_TOOLTIP": "宽高比:{{aspect}}",
"ASPECT_DEFAULT": "默认",
+1
View File
@@ -626,6 +626,7 @@
"SUBTITLE_TRACK_FALLBACK": "字幕 {{index}}",
"PLAYBACK_SPEED": "播放速度",
"SPEED_TOOLTIP": "速度:{{speed}}",
"SUBTITLES_TOOLTIP": "字幕:{{subtitles}}",
"ASPECT_RATIO": "長寬比",
"ASPECT_TOOLTIP": "長寬比:{{aspect}}",
"ASPECT_DEFAULT": "預設",