You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: skills/a11y-debugging/SKILL.md
+24-8Lines changed: 24 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,16 +11,32 @@ description: Uses Chrome DevTools MCP for accessibility (a11y) debugging and aud
11
11
12
12
## Workflow Patterns
13
13
14
-
### 1. Browser Issues & Audits
14
+
### 1. Automated Audit (Lighthouse)
15
15
16
-
Chrome automatically checks for common accessibility problems. Use `list_console_messages` to check for these native audits first:
16
+
Start by running a Lighthouse accessibility audit to get a comprehensive baseline. This tool provides a high-level score and lists specific failing elements with remediation advice.
17
+
18
+
1. Run the audit:
19
+
1. Run the audit:
20
+
Call the `lighthouse_audit` tool. It checks "accessibility", "seo", and "best-practices" by default.
21
+
- Set `mode` to `"navigation"` to refresh the page and capture load issues.
22
+
- Optionally set `outputDirPath` to save full HTML/JSON reports.
- If you saved the report, open the JSON file to see detailed findings and exact element selectors.
28
+
- If you only have the summary, proceed to specific checks below for the failing categories.
29
+
30
+
### 2. Browser Issues & Audits
31
+
32
+
Chrome automatically checks for common accessibility problems. Use `list_console_messages` to check for these native audits:
17
33
18
34
-`types`: `["issue"]`
19
35
-`includePreservedMessages`: `true` (to catch issues that occurred during page load)
20
36
21
37
This often reveals missing labels, invalid ARIA attributes, and other critical errors without manual investigation.
22
38
23
-
### 2. Semantics & Structure
39
+
### 3. Semantics & Structure
24
40
25
41
The accessibility tree exposes the heading hierarchy and semantic landmarks.
26
42
@@ -29,7 +45,7 @@ The accessibility tree exposes the heading hierarchy and semantic landmarks.
29
45
3.**Check Heading Levels**: Ensure heading levels (`h1`, `h2`, `h3`, etc.) are logical and do not skip levels. The snapshot will include heading roles.
30
46
4.**Content Reordering**: Verify that the DOM order (which drives the accessibility tree) matches the visual reading order. Use `take_screenshot` to inspect the visual layout and compare it against the snapshot structure to catch CSS floats or absolute positioning that jumbles the logical flow.
31
47
32
-
### 3. Labels, Forms & Text Alternatives
48
+
### 4. Labels, Forms & Text Alternatives
33
49
34
50
1. Locate buttons, inputs, and images in the `take_snapshot` output.
35
51
2. Ensure interactive elements have an accessible name (e.g., a button should not just say `""` if it only contains an icon).
@@ -55,7 +71,7 @@ The accessibility tree exposes the heading hierarchy and semantic landmarks.
55
71
56
72
4. Check images for`alt` text.
57
73
58
-
### 4. Focus & Keyboard Navigation
74
+
### 5. Focus & Keyboard Navigation
59
75
60
76
Testing "keyboard traps" and proper focus management without visual feedback relies on tracking the focused element.
61
77
@@ -64,7 +80,7 @@ Testing "keyboard traps" and proper focus management without visual feedback rel
64
80
3. Locate the element marked as focused in the snapshot to verify focus moved to the expected interactive element.
65
81
4. If a modal opens, focus must move into the modal and "trap" within it until closed.
66
82
67
-
### 5. Tap Targets and Visuals
83
+
### 6. Tap Targets and Visuals
68
84
69
85
According to web.dev, tap targets should be at least 48x48 pixels with sufficient spacing. Since the accessibility tree doesn't show sizes, use `evaluate_script`:
70
86
@@ -78,7 +94,7 @@ el => {
78
94
79
95
_Pass the element's `uid` from the snapshot as an argument to `evaluate_script`._
80
96
81
-
### 6. Color Contrast
97
+
### 7. Color Contrast
82
98
83
99
To verify color contrast ratios, start by checking for native accessibility issues:
84
100
@@ -124,7 +140,7 @@ el => {
124
140
125
141
_Pass the element's `uid` to test the contrast against WCAG AA (4.5:1 for normal text, 3:1 for large text)._
126
142
127
-
### 7. Global Page Checks
143
+
### 8. Global Page Checks
128
144
129
145
Verify document-level accessibility settings often missed in component testing:
0 commit comments