From 21aef3bc0caa4714d5d475d50799200b21120bcc Mon Sep 17 00:00:00 2001 From: Exotic209093 <134711311+Exotic209093@users.noreply.github.com> Date: Wed, 9 Sep 2026 16:37:27 +0100 Subject: [PATCH] fix(accessibility): improve ARIA attributes and keyboard navigation across UI components Addresses #103 - accessibility-pass - Add proper ARIA labels and roles to interactive components - Improve keyboard navigation and focus management - Enhance screen reader support for data views and wizards - Fix color contrast and semantic markup issues Co-Authored-By: Claude Fable 5.1 --- src/ui/components/ConditionalBuilder.tsx | 5 +++-- src/ui/components/DataDiffView.tsx | 6 ++++-- src/ui/components/DryRunPanel.tsx | 10 +++++----- src/ui/components/DuplicateGroupView.tsx | 4 ++-- src/ui/components/FieldAnalyticsChart.tsx | 4 ++-- src/ui/components/FieldDiffDetail.tsx | 4 ++-- src/ui/components/FieldGeneratorConfig.tsx | 2 +- src/ui/components/FieldRecommendations.tsx | 2 +- src/ui/components/MergeWizard.tsx | 7 +++++-- .../components/MigrationProgressDashboard.tsx | 3 ++- src/ui/components/OrgPicker.tsx | 2 +- src/ui/components/QualityRuleEditor.tsx | 4 +++- src/ui/components/QualityScorecard.tsx | 4 ++-- src/ui/components/QueryExplainPanel.tsx | 6 +++--- src/ui/components/QueryMetricsPanel.tsx | 8 ++++---- src/ui/components/RelationshipConfig.tsx | 6 +++--- src/ui/components/RelationshipTree.tsx | 11 ++++------ src/ui/components/SchemaDiffView.tsx | 9 +++++---- src/ui/components/ShortcutEditor.tsx | 13 ++++++------ src/ui/components/Skeleton.tsx | 11 +++++----- src/ui/components/StepConfigPanel.tsx | 8 ++++---- src/ui/components/TemplateCard.tsx | 11 +++++----- src/ui/components/TemplateEditor.tsx | 11 +++++----- src/ui/components/UndoHistoryPanel.tsx | 15 +++++++------- src/ui/components/cleanser/BulkActions.tsx | 16 ++++++++------- src/ui/components/cleanser/ColumnEditor.tsx | 2 +- src/ui/components/cleanser/DatasetHeader.tsx | 15 +++++++------- src/ui/components/cleanser/PreviewGrid.tsx | 4 ++-- .../components/cleanser/ValidationPanel.tsx | 8 ++++---- .../query-builder/OrderBySelector.tsx | 11 +++++++--- .../components/query-builder/SoqlPreview.tsx | 6 +++--- .../query-builder/SubqueryBuilder.tsx | 6 +++--- .../components/query-builder/WhereBuilder.tsx | 20 ++++++++----------- 33 files changed, 134 insertions(+), 120 deletions(-) diff --git a/src/ui/components/ConditionalBuilder.tsx b/src/ui/components/ConditionalBuilder.tsx index 92801ae..a3873a1 100644 --- a/src/ui/components/ConditionalBuilder.tsx +++ b/src/ui/components/ConditionalBuilder.tsx @@ -52,13 +52,14 @@ export function ConditionalBuilder(props: ConditionalBuilderProps): VNode { }; return ( -
+
{/* IF row */}
- IF + IF +

Quality Rules

{rules.length} rule{rules.length !== 1 ? 's' : ''} @@ -193,6 +193,8 @@ export function QualityRuleEditor(props: QualityRuleEditorProps): VNode {
diff --git a/src/ui/components/QualityScorecard.tsx b/src/ui/components/QualityScorecard.tsx index 79d5d01..36dc11f 100644 --- a/src/ui/components/QualityScorecard.tsx +++ b/src/ui/components/QualityScorecard.tsx @@ -40,13 +40,13 @@ export function QualityScorecard(props: QualityScorecardProps): VNode { breakdowns.sort((a, b) => a.passRate - b.passRate); return ( -
+

Quality Scorecard

{/* Score badge */} -
+
+

Explain Plan

-
-
diff --git a/src/ui/components/QueryMetricsPanel.tsx b/src/ui/components/QueryMetricsPanel.tsx index dfc03dd..7ab3bf5 100644 --- a/src/ui/components/QueryMetricsPanel.tsx +++ b/src/ui/components/QueryMetricsPanel.tsx @@ -36,16 +36,16 @@ export function QueryMetricsPanel(props: QueryMetricsPanelProps): VNode { const displayed = viewAll ? sorted : sorted.slice(0, 5); return ( -
+

Query Metrics

-
+ diff --git a/src/ui/components/RelationshipConfig.tsx b/src/ui/components/RelationshipConfig.tsx index ac4eac6..0774bb6 100644 --- a/src/ui/components/RelationshipConfig.tsx +++ b/src/ui/components/RelationshipConfig.tsx @@ -1,4 +1,4 @@ -/** +/** * Configuration component for lookup relationship fields. * * Provides a textarea for entering lookup record IDs (one per line) @@ -41,8 +41,7 @@ export function RelationshipConfig(props: RelationshipConfigProps): VNode {
-