openpetswithchatandmcp/website/config/accessibility-core-workflows.json
OpenPets Dev 65ac83849e Add 'website/' from commit '966aea480ffe1c340553aa878def30131d2af827'
git-subtree-dir: website
git-subtree-mainline: 8d3849caea
git-subtree-split: 966aea480f
2026-06-17 20:48:39 +00:00

160 lines
6.3 KiB
JSON
Executable file

{
"updated_at": "2026-02-22T00:00:00.000Z",
"scope": "8.0 Experience Polish Track",
"workflows": [
{
"id": "runboard_triage_and_drilldown",
"title": "Runboard triage and drill-down",
"primary_surface": "Runboard",
"goal": "Operators can filter, inspect, and remediate runs without ambiguous labels or inaccessible state transitions.",
"required_dimensions": ["labels"],
"checks": [
{
"dimension": "labels",
"type": "component",
"path": "scriptoriumai-ui/src/__tests__/Runboard.states.test.tsx",
"focus": "Filter controls expose accessible labels for status, kind, and project selectors."
},
{
"dimension": "labels",
"type": "e2e",
"path": "scriptoriumai-ui/tests/e2e/runboard-remediation.spec.ts",
"focus": "Core remediation and artifact drill-down flows remain executable end-to-end on the runboard surface."
}
]
},
{
"id": "corpus_graph_root_exploration",
"title": "Corpus graph root exploration",
"primary_surface": "CorpusGraph",
"goal": "Core graph filters and traversal controls remain discoverable and labeled for keyboard/screen-reader navigation.",
"required_dimensions": ["labels"],
"checks": [
{
"dimension": "labels",
"type": "a11y",
"path": "scriptoriumai-ui/src/__tests__/CorpusGraph.a11y.test.tsx",
"focus": "Root selection, traversal, relation filters, and drift controls are label-bound."
}
]
},
{
"id": "command_surfaces_overlay_navigation",
"title": "Command surfaces overlay navigation",
"primary_surface": "Command Palette + Shortcuts Modal",
"goal": "Overlay command surfaces preserve keyboard focus order, trap tab navigation, and restore focus on close.",
"required_dimensions": ["focus_order", "keyboard_trap", "focus_restore"],
"checks": [
{
"dimension": "focus_order",
"type": "a11y",
"path": "scriptoriumai-ui/src/__tests__/command-palette.a11y.test.tsx",
"focus": "Command palette opens with deterministic initial focus on the search input."
},
{
"dimension": "focus_restore",
"type": "a11y",
"path": "scriptoriumai-ui/src/__tests__/command-palette.a11y.test.tsx",
"focus": "Command palette restores focus to the invoking control on escape-close."
},
{
"dimension": "focus_order",
"type": "a11y",
"path": "scriptoriumai-ui/src/__tests__/keyboard-shortcuts-modal.a11y.test.tsx",
"focus": "Shortcuts dialog establishes deterministic tab order across dialog controls."
},
{
"dimension": "keyboard_trap",
"type": "a11y",
"path": "scriptoriumai-ui/src/__tests__/keyboard-shortcuts-modal.a11y.test.tsx",
"focus": "Shortcuts dialog traps tab/shift+tab navigation within the dialog."
}
]
},
{
"id": "editor_glyph_manager_accessibility_loop",
"title": "Editor glyph manager accessibility loop",
"primary_surface": "EditorPanel glyph manager",
"goal": "Glyph insertion/management UI exposes labeled controls and deterministic focus behavior during open/close cycles.",
"required_dimensions": ["labels", "focus_order", "focus_restore"],
"checks": [
{
"dimension": "labels",
"type": "a11y",
"path": "scriptoriumai-ui/src/__tests__/EditorPanel.a11y.test.tsx",
"focus": "Glyph controls and manager fields expose explicit labels and named region semantics."
},
{
"dimension": "focus_order",
"type": "a11y",
"path": "scriptoriumai-ui/src/__tests__/EditorPanel.a11y.test.tsx",
"focus": "Glyph manager opens with deterministic focus on the first managed field."
},
{
"dimension": "focus_restore",
"type": "a11y",
"path": "scriptoriumai-ui/src/__tests__/EditorPanel.a11y.test.tsx",
"focus": "Escape-close restores focus to the glyph manager toggle control."
}
]
}
],
"contrast_checks": [
{
"id": "panel_text_main",
"description": "Primary panel body text on standard cross-corpus panel surface.",
"foreground_var": "--cc-color-text-main",
"background_var": "--cc-color-panel-bg",
"backdrop_var": "--cc-color-panel-bg-subtle",
"min_ratio": 4.5
},
{
"id": "panel_text_muted",
"description": "Muted supporting text on standard cross-corpus panel surface.",
"foreground_var": "--cc-color-text-muted",
"background_var": "--cc-color-panel-bg",
"backdrop_var": "--cc-color-panel-bg-subtle",
"min_ratio": 4.5
},
{
"id": "status_neutral_pill",
"description": "Neutral status-pill text on status-pill background over panel surface.",
"foreground_var": "--cc-status-neutral-fg",
"background_var": "--cc-status-neutral-bg",
"backdrop_var": "--cc-color-panel-bg-subtle",
"min_ratio": 4.5
},
{
"id": "status_info_pill",
"description": "Info status-pill text on status-pill background over panel surface.",
"foreground_var": "--cc-status-info-fg",
"background_var": "--cc-status-info-bg",
"backdrop_var": "--cc-color-panel-bg-subtle",
"min_ratio": 4.5
},
{
"id": "status_success_pill",
"description": "Success status-pill text on status-pill background over panel surface.",
"foreground_var": "--cc-status-success-fg",
"background_var": "--cc-status-success-bg",
"backdrop_var": "--cc-color-panel-bg-subtle",
"min_ratio": 4.5
},
{
"id": "status_warning_pill",
"description": "Warning status-pill text on status-pill background over panel surface.",
"foreground_var": "--cc-status-warning-fg",
"background_var": "--cc-status-warning-bg",
"backdrop_var": "--cc-color-panel-bg-subtle",
"min_ratio": 4.5
},
{
"id": "status_danger_pill",
"description": "Danger status-pill text on status-pill background over panel surface.",
"foreground_var": "--cc-status-danger-fg",
"background_var": "--cc-status-danger-bg",
"backdrop_var": "--cc-color-panel-bg-subtle",
"min_ratio": 4.5
}
]
}