WCAG: Review fixes - arrow keys, PageTab roles, AlertMessage

Add Up/Down arrow key navigation to Settings sidebar.
Add Accessible.role: Accessible.PageTab to all 5 tab pages.
Fix Loader status to use AlertMessage role per WCAG 4.1.3.
This commit is contained in:
Your Name
2026-02-18 21:10:21 +02:00
parent 7c80ecfbed
commit d509eb5efb
3 changed files with 19 additions and 2 deletions

View File

@@ -161,7 +161,7 @@ ApplicationWindow {
font.family: jetBrainsMono.name font.family: jetBrainsMono.name
font.pixelSize: 11 font.pixelSize: 11
font.bold: true font.bold: true
Accessible.role: Accessible.StaticText Accessible.role: Accessible.AlertMessage
Accessible.name: "Loading status: " + text Accessible.name: "Loading status: " + text
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
opacity: 1.0 opacity: 1.0

View File

@@ -282,7 +282,7 @@ ApplicationWindow {
radius: width / 2 radius: width / 2
color: "transparent" color: "transparent"
border.width: 2 border.width: 2
border.color: "#B794F6" border.color: "#B794F6" // SettingsStyle.accent equivalent
visible: micContainer.activeFocus visible: micContainer.activeFocus
} }
} }

View File

@@ -226,6 +226,18 @@ Window {
Accessible.role: Accessible.Tab Accessible.role: Accessible.Tab
Keys.onReturnPressed: stack.currentIndex = index Keys.onReturnPressed: stack.currentIndex = index
Keys.onSpacePressed: stack.currentIndex = index Keys.onSpacePressed: stack.currentIndex = index
Keys.onDownPressed: {
if (index < navModel.count - 1) {
var nextItem = navBtnRoot.parent.children[index + 2]
if (nextItem && nextItem.forceActiveFocus) nextItem.forceActiveFocus()
}
}
Keys.onUpPressed: {
if (index > 0) {
var prevItem = navBtnRoot.parent.children[index]
if (prevItem && prevItem.forceActiveFocus) prevItem.forceActiveFocus()
}
}
Behavior on color { ColorAnimation { duration: 150 } } Behavior on color { ColorAnimation { duration: 150 } }
@@ -315,6 +327,7 @@ Window {
// --- TAB: GENERAL --- // --- TAB: GENERAL ---
ScrollView { ScrollView {
Accessible.role: Accessible.PageTab
ScrollBar.vertical.policy: ScrollBar.AsNeeded ScrollBar.vertical.policy: ScrollBar.AsNeeded
contentWidth: availableWidth contentWidth: availableWidth
@@ -412,6 +425,7 @@ Window {
// --- TAB: AUDIO --- // --- TAB: AUDIO ---
ScrollView { ScrollView {
Accessible.role: Accessible.PageTab
ScrollBar.vertical.policy: ScrollBar.AsNeeded ScrollBar.vertical.policy: ScrollBar.AsNeeded
contentWidth: availableWidth contentWidth: availableWidth
@@ -500,6 +514,7 @@ Window {
// --- TAB: VISUALS --- // --- TAB: VISUALS ---
ScrollView { ScrollView {
Accessible.role: Accessible.PageTab
ScrollBar.vertical.policy: ScrollBar.AsNeeded ScrollBar.vertical.policy: ScrollBar.AsNeeded
contentWidth: availableWidth contentWidth: availableWidth
@@ -618,6 +633,7 @@ Window {
// --- TAB: AI ENGINE --- // --- TAB: AI ENGINE ---
ScrollView { ScrollView {
Accessible.role: Accessible.PageTab
ScrollBar.vertical.policy: ScrollBar.AsNeeded ScrollBar.vertical.policy: ScrollBar.AsNeeded
contentWidth: availableWidth contentWidth: availableWidth
@@ -1078,6 +1094,7 @@ Window {
// --- TAB: DEBUG --- // --- TAB: DEBUG ---
ScrollView { ScrollView {
Accessible.role: Accessible.PageTab
ScrollBar.vertical.policy: ScrollBar.AsNeeded ScrollBar.vertical.policy: ScrollBar.AsNeeded
contentWidth: availableWidth contentWidth: availableWidth