-
Notifications
You must be signed in to change notification settings - Fork 6
Markdown Accessibility
Domain-specific knowledge module for Markdown accessibility auditing. Covers the 9 accessibility domains, severity scoring formula (0-100 with A-F grades), emoji handling modes (remove-all, remove-decorative, translate, leave-unchanged), emoji translation map, Mermaid and ASCII diagram replacement templates, ambiguous link pattern library, anchor validation rules, and em-dash normalization. Used by all three markdown accessibility agents.
| Agent | Why |
|---|---|
| markdown-a11y-assistant | Phase flow, scoring aggregation, review gate logic |
| markdown-scanner | Per-domain issue detection and classification |
| markdown-fixer | Fix rules, diagram replacement templates, emoji translation |
| # | Domain | WCAG | Severities |
|---|---|---|---|
| 1 | Ambiguous link text | 2.4.4 | Serious (known patterns), Moderate (context-dependent) |
| 2 | Missing / poor alt text | 1.1.1 | Critical (missing), Serious (filename as alt), Moderate (quality) |
| 3 | Heading structure | 1.3.1 | Critical (multiple H1), Serious (level skip), Moderate (duplicate text) |
| 4 | Table descriptions | 1.3.1 | Serious (no description), Moderate (vague description) |
| 5 | Emoji | 1.3.3 | Serious (in heading), Moderate (consecutive / bullets) |
| 6 | Mermaid and ASCII diagrams | 1.1.1 | Critical (no description at all), Serious (description present but vague) |
| 7 | Em-dash and en-dash | Cognitive | Minor (— with spaces), Moderate (— without spaces) |
| 8 | Anchor links | 2.4.4 | Serious (target heading not found), Minor (case mismatch only) |
| 9 | Plain language | Cognitive | Minor (warning only - informational) |
File Score = 100 - (Critical×15 + Serious×7 + Moderate×3 + Minor×1)
Floor: 0
| Score | Grade | Meaning |
|---|---|---|
| 90-100 | A | Excellent - minor or no issues |
| 75-89 | B | Good - mostly accessible documentation |
| 50-74 | C | Needs Work - several accessibility gaps |
| 25-49 | D | Poor - significant barriers |
| 0-24 | F | Failing - major structural problems |
| Mode | Behavior | When to Use |
|---|---|---|
remove-all |
Remove every emoji character from the file | Maximum compatibility, plain text output |
remove-decorative |
Remove emoji that carry no meaning; keep only those that are sole content | Default |
translate |
Replace each emoji with its English equivalent in parentheses | When the emoji conveys meaning the reader should understand |
leave-unchanged |
No emoji changes | Audit-only pass; user will address manually |
| Emoji | Translation | Emoji | Translation |
|---|---|---|---|
| 🚀 | (Launch) | ✅ | (Done) |
| ❌ | (Error) | (Warning) | |
| 📝 | (Note) | 💡 | (Tip) |
| 🔧 | (Configuration) | 📋 | (Prerequisites) |
| 🎉 | (Celebration) | 🔒 | (Security) |
| 📦 | (Package) | 🌐 | (Web) |
| 🗂️ | (Files) | 🧪 | (Testing) |
| 🐛 | (Bug) | ✨ | (New) |
| 📄 | (Document) | 📊 | (Chart) |
| ⬆️ | (Upgrade) | ⬇️ | (Download) |
| ℹ️ | (Info) | 🔗 | (Link) |
| 🏷️ | (Label) | 🧩 | (Component) |
| 🎯 | (Target) | 🔍 | (Search) |
| 💬 | (Comment) | 🔑 | (Key) |
Emoji appear in Unicode ranges:
-
U+1F600–U+1F64FEmoticons -
U+1F300–U+1F5FFMisc Symbols and Pictographs -
U+1F680–U+1F6FFTransport and Map -
U+1F700–U+1F77FAlchemical Symbols -
U+2600–U+26FFMisc Symbols -
U+2700–U+27BFDingbats -
U+FE00–U+FE0FVariation Selectors
click here | here | this | read more | learn more | see more | more
more details | more info | details | continue | go | visit | view
link | click | tap | open | see | check out | find out
\[https?://[^\]]+\]
\]\(https?://[^\)]+\) # where display text equals URLdocumentation | guide | article | page | post | info | instructions
download | file | resource | example | demo | source
When replacing a Mermaid block, the description comes first as primary content:
[Text description: describe the entities (nodes/boxes) and their relationships (edges/arrows). For flowcharts: start point, decisions, branches, and end states. For sequence diagrams: actors, messages, and order. For entity diagrams: entities, attributes, and relationships.]
<details>
<summary>Diagram source (Mermaid)</summary>
```mermaid
[original diagram code preserved verbatim]Simple diagrams (3 or fewer nodes): Generate description automatically.
Complex diagrams: Generate draft description and mark <!-- REVIEW: verify diagram description accuracy -->.
[Text description: describe what the ASCII art depicts - layout, flow, hierarchy, or data relationships in plain language.]
<details>
<summary>ASCII diagram</summary>
[original ASCII art preserved verbatim]
</details>
ASCII detection pattern: Blocks of 3+ consecutive lines using +, -, |, =, /, \, >, <, ^, v characters forming shapes or flow indicators.
- Extract all
[text](#anchor)links from the file - Extract all heading text and compute their GitHub-flavored Markdown anchors:
- Lowercase all characters
- Replace spaces with hyphens
- Remove characters that are not alphanumeric, hyphens, or underscores
- Strip emoji characters before computing (emoji-containing headings produce unreliable anchors)
- Flag each link whose
#anchordoes not match any computed heading anchor - Severity: Serious if the anchor does not exist at all; Minor if only a case mismatch
| Pattern | Severity | Fix |
|---|---|---|
word—word (no spaces) |
Moderate | Replace with -
|
word –word (asymmetric) |
Moderate | Replace with -
|
— (with spaces) |
Minor | Replace with -
|
-- double hyphen |
Minor | Replace with -
|
Screen readers announce — as "dash" or skip it entirely when no surrounding spaces exist, causing adjacent words to be read as one concatenated word.
- Accessibility Lead
- Web Accessibility Wizard
- Document Accessibility Wizard
- Alt Text and Headings
- ARIA Specialist
- Contrast Master
- Forms Specialist
- Keyboard Navigator
- Link Checker
- Live Region Controller
- Modal Specialist
- Tables Data Specialist
- Word Accessibility
- Excel Accessibility
- PowerPoint Accessibility
- PDF Accessibility
- Office Scan Config
- PDF Scan Config
- Testing Coach
- WCAG Guide