Skip to content

Commit ca7be31

Browse files
committed
feat: Add Lighthouse audit as the initial step in the accessibility debugging workflow and reorder subsequent sections.
1 parent ef4b11d commit ca7be31

1 file changed

Lines changed: 24 additions & 8 deletions

File tree

skills/a11y-debugging/SKILL.md

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,32 @@ description: Uses Chrome DevTools MCP for accessibility (a11y) debugging and aud
1111

1212
## Workflow Patterns
1313

14-
### 1. Browser Issues & Audits
14+
### 1. Automated Audit (Lighthouse)
1515

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.
23+
2. **Analyze the Summary**:
24+
- Check `scores` (0-1 scale). A score < 1 indicates violations.
25+
- Review `audits.failed` count.
26+
3. **Review the Report**:
27+
- 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:
1733

1834
- `types`: `["issue"]`
1935
- `includePreservedMessages`: `true` (to catch issues that occurred during page load)
2036

2137
This often reveals missing labels, invalid ARIA attributes, and other critical errors without manual investigation.
2238

23-
### 2. Semantics & Structure
39+
### 3. Semantics & Structure
2440

2541
The accessibility tree exposes the heading hierarchy and semantic landmarks.
2642

@@ -29,7 +45,7 @@ The accessibility tree exposes the heading hierarchy and semantic landmarks.
2945
3. **Check Heading Levels**: Ensure heading levels (`h1`, `h2`, `h3`, etc.) are logical and do not skip levels. The snapshot will include heading roles.
3046
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.
3147

32-
### 3. Labels, Forms & Text Alternatives
48+
### 4. Labels, Forms & Text Alternatives
3349

3450
1. Locate buttons, inputs, and images in the `take_snapshot` output.
3551
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.
5571

5672
4. Check images for `alt` text.
5773

58-
### 4. Focus & Keyboard Navigation
74+
### 5. Focus & Keyboard Navigation
5975

6076
Testing "keyboard traps" and proper focus management without visual feedback relies on tracking the focused element.
6177

@@ -64,7 +80,7 @@ Testing "keyboard traps" and proper focus management without visual feedback rel
6480
3. Locate the element marked as focused in the snapshot to verify focus moved to the expected interactive element.
6581
4. If a modal opens, focus must move into the modal and "trap" within it until closed.
6682

67-
### 5. Tap Targets and Visuals
83+
### 6. Tap Targets and Visuals
6884

6985
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`:
7086
@@ -78,7 +94,7 @@ el => {
7894
7995
_Pass the element's `uid` from the snapshot as an argument to `evaluate_script`._
8096

81-
### 6. Color Contrast
97+
### 7. Color Contrast
8298

8399
To verify color contrast ratios, start by checking for native accessibility issues:
84100

@@ -124,7 +140,7 @@ el => {
124140

125141
_Pass the element's `uid` to test the contrast against WCAG AA (4.5:1 for normal text, 3:1 for large text)._
126142
127-
### 7. Global Page Checks
143+
### 8. Global Page Checks
128144
129145
Verify document-level accessibility settings often missed in component testing:
130146

0 commit comments

Comments
 (0)