fix(a11y): WCAG AA contrast retune for the Otter Orange palette (#567)

Fixes #557. Vivid fill, ink label: brand #E07832 stays on fills while primary-foreground flips to #1A1814 (5.83:1); new theme-aware ink tokens carry orange, destructive, and success text roles; opacity-modified text purged; landing, demo, and the docs fund button retuned. Guarded by a CSS-parsing unit contrast test, rebuilt axe baselines with zero contrast entries, a new landing axe smoke, and fully regenerated darwin visual baselines.
This commit is contained in:
SnapOtter
2026-07-18 12:56:48 +08:00
committed by GitHub
parent 6241f8719f
commit 51022628dc
566 changed files with 856 additions and 707 deletions
-140
View File
@@ -1,51 +1,16 @@
{
"_comment": "Known axe a11y violations. Keyed by pageKey:ruleId. This baseline lets CI catch NEW regressions without failing on documented existing debt. Regenerate by running the a11y spec with A11Y_UPDATE_BASELINE=1.",
"violations": {
"home-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 11
},
"home-en:heading-order": {
"impact": "moderate",
"description": "Ensure the order of headings is semantically correct",
"count": 1
},
"image-resize-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"video-convert-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"audio-convert-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"document-pdf-to-image-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"data-csv-excel-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"editor-en:aria-required-children": {
"impact": "critical",
"description": "Ensure elements with an ARIA role that require child roles contain them",
"count": 1
},
"editor-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"editor-en:label": {
"impact": "critical",
"description": "Ensure every form element has a label",
@@ -66,11 +31,6 @@
"description": "Ensure all skip links have a focusable target",
"count": 1
},
"login-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 4
},
"login-en:region": {
"impact": "moderate",
"description": "Ensure all page content is contained by landmarks",
@@ -81,31 +41,16 @@
"description": "Ensure all skip links have a focusable target",
"count": 1
},
"home-ar:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 9
},
"home-ar:heading-order": {
"impact": "moderate",
"description": "Ensure the order of headings is semantically correct",
"count": 1
},
"image-resize-ar:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 1
},
"editor-ar:aria-required-children": {
"impact": "critical",
"description": "Ensure elements with an ARIA role that require child roles contain them",
"count": 1
},
"editor-ar:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"editor-ar:label": {
"impact": "critical",
"description": "Ensure every form element has a label",
@@ -126,11 +71,6 @@
"description": "Ensure all skip links have a focusable target",
"count": 1
},
"login-ar:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"login-ar:region": {
"impact": "moderate",
"description": "Ensure all page content is contained by landmarks",
@@ -141,66 +81,11 @@
"description": "Ensure all skip links have a focusable target",
"count": 1
},
"mobile-home-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 7
},
"mobile-home-en:heading-order": {
"impact": "moderate",
"description": "Ensure the order of headings is semantically correct",
"count": 1
},
"mobile-image-resize-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"mobile-image-resize-en:link-name": {
"impact": "serious",
"description": "Ensure links have discernible text",
"count": 1
},
"mobile-video-convert-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"mobile-video-convert-en:link-name": {
"impact": "serious",
"description": "Ensure links have discernible text",
"count": 1
},
"mobile-audio-convert-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"mobile-audio-convert-en:link-name": {
"impact": "serious",
"description": "Ensure links have discernible text",
"count": 1
},
"mobile-document-pdf-to-image-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"mobile-document-pdf-to-image-en:link-name": {
"impact": "serious",
"description": "Ensure links have discernible text",
"count": 1
},
"mobile-data-csv-excel-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 2
},
"mobile-data-csv-excel-en:link-name": {
"impact": "serious",
"description": "Ensure links have discernible text",
"count": 1
},
"mobile-editor-en:page-has-heading-one": {
"impact": "moderate",
"description": "Ensure that the page, or at least one of its frames contains a level-one heading",
@@ -216,11 +101,6 @@
"description": "Ensure all skip links have a focusable target",
"count": 1
},
"mobile-login-en:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 1
},
"mobile-login-en:region": {
"impact": "moderate",
"description": "Ensure all page content is contained by landmarks",
@@ -231,31 +111,11 @@
"description": "Ensure all skip links have a focusable target",
"count": 1
},
"mobile-home-ar:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 8
},
"mobile-home-ar:heading-order": {
"impact": "moderate",
"description": "Ensure the order of headings is semantically correct",
"count": 1
},
"mobile-image-resize-ar:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 1
},
"mobile-image-resize-ar:link-name": {
"impact": "serious",
"description": "Ensure links have discernible text",
"count": 1
},
"mobile-login-ar:color-contrast": {
"impact": "serious",
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"count": 1
},
"mobile-login-ar:region": {
"impact": "moderate",
"description": "Ensure all page content is contained by landmarks",