Agent skill
cognitive-accessibility
WCAG 2.2 cognitive accessibility reference tables, plain language analysis, COGA guidance, auth pattern detection, and reading level analysis. Use when reviewing UI for cognitive load, plain language clarity, WCAG 2.2 new criteria (3.3.7 Redundant Entry, 3.3.8/3.3.9 Accessible Authentication), timeout warnings, and memory demands.
Install this agent skill to your Project
npx add-skill https://github.com/Community-Access/accessibility-agents/tree/main/.github/skills/cognitive-accessibility
SKILL.md
Skill: Cognitive Accessibility
Domain: Cognitive, learning, and neurological accessibility
WCAG scope: WCAG 2.2 AA + key AAA, COGA W3C guidance
Agents that use this skill: cognitive-accessibility, web-accessibility-wizard, accessibility-lead, forms-specialist
Purpose
This skill provides reference tables, scoring formulas, and evaluation patterns for cognitive accessibility review. It covers:
- WCAG 2.2 success criteria with cognitive accessibility relevance
- COGA (Cognitive Accessibility) W3C guidance mapping
- Plain language analysis techniques
- Reading level computation
- Authentication pattern analysis (3.3.8 / 3.3.9)
- Redundant entry detection (3.3.7)
- Timeout and session management analysis
WCAG 2.2 Cognitive Accessibility Criteria Reference
Level A
| SC | Name | What to Check | Common Failures |
|---|---|---|---|
| 2.2.1 | Timing Adjustable | Session timeouts warn >=20s before expiry; user can extend >=10x or disable | Redirect without warning; extension UI exists but does nothing |
| 2.2.2 | Pause, Stop, Hide | Auto-moving/blinking content >5s has pause/stop control | Blinking backgrounds, marquee text, auto-scrolling feeds |
| 2.3.1 | Three Flashes | No content flashes >3 Hz (absolute) | Transition animations that strobe |
| 3.3.1 | Error Identification | Error identified in text, not just color | Red border with no error message |
| 3.3.2 | Labels or Instructions | Format requirements shown before error, required fields identified upfront | Format hint only in error state; asterisks with no legend |
| 3.3.7 | Redundant Entry (2.2 new) | Previously-entered info not re-requested in same session unless security-essential or stale | Email re-entered on step 3; billing address not pre-filled from shipping |
Level AA
| SC | Name | What to Check | Common Failures |
|---|---|---|---|
| 2.4.6 | Headings and Labels | Headings describe content; labels describe input purpose | "Section 1", "Info", "Details" as heading text |
| 3.2.3 | Consistent Navigation | Nav appears in same relative order across pages | Footer nav changes order on mobile vs desktop |
| 3.2.4 | Consistent Identification | Same-function components have same accessible name across pages | "Search" button on one page, "Find" on another |
| 3.3.3 | Error Suggestion | For detected errors, suggest correction when possible/safe | "Invalid email" with no example or format hint |
| 3.3.4 | Error Prevention (Legal, Financial) | Review step before irreversible submission; allow reversal or confirmation | One-click purchase with no review screen; no undo for account deletion |
| 3.3.8 | Accessible Authentication Min. (2.2 new) | Authentication must not require cognitive function test unless an alternative exists | autocomplete="off" on login forms; paste disabled in password fields; transcription-only CAPTCHA |
Level AAA (Advisory - Review and Report)
| SC | Name | What to Check |
|---|---|---|
| 2.2.6 | Timeouts | Warn about data loss from inactivity at start of session |
| 3.1.3 | Unusual Words | Jargon/idiom defined on first use |
| 3.1.4 | Abbreviations | Abbreviations expanded on first use |
| 3.1.5 | Reading Level | General content <= Grade 8; see formula below |
| 3.3.9 | Accessible Authentication Enhanced (2.2 new) | No cognitive function test at all (removes the object-recognition exception) |
Authentication Pattern Analysis (3.3.8 / 3.3.9)
Failing Patterns
| Pattern | Failure | SC |
|---|---|---|
autocomplete="off" on type="password" |
Blocks password manager paste | 3.3.8 |
JavaScript onpaste="return false" on password input |
Blocks manual paste | 3.3.8 |
| CAPTCHA with only distorted text option | No cognitive-free alternative | 3.3.8 |
| Security question requiring exact recall | Pure memory test | 3.3.8 |
| Re-entering full card number on the same session order flow | Redundant cognitive work | 3.3.7 |
Passing Patterns
| Pattern | Why It Passes |
|---|---|
<input type="password" autocomplete="current-password"> |
Allows password manager autofill |
| Passkey/biometric as login alternative | No cognitive function test |
| "Same as shipping address" checkbox on billing form | Eliminates redundant entry |
| CAPTCHA with audio alternative | Provides non-visual option |
| Email magic link with no password required | Removes cognitive test entirely |
Redundant Entry Patterns (3.3.7)
Detection Checklist
In multi-step forms or wizards:
- Map all input fields across all steps
- Flag any field that requests information already collected in an earlier step
- Exception: security confirmation (password confirm) and data that can become stale (current vs. new address)
Common Violations
| Step 1 Collects | Step 3 Also Asks | Violation? |
|---|---|---|
| Email address | Email for confirmation | Yes - unless security-essential |
| Full name | Billing name | Yes - should pre-fill |
| Shipping address | Billing address | Yes - should offer "same as shipping" |
| Date of birth | DOB for age verification | Yes - same session, same data |
| Password | Password confirm | No - security essential |
| Current address | New address (for change) | No - intentionally different |
Plain Language Analysis
Sentence Analysis
Evaluate all instructional text, error messages, button labels, and tooltip copy.
| Metric | Target | How to Measure |
|---|---|---|
| Sentence length | <= 25 words; aim for 15-20 | Count words between periods/question marks |
| Voice | Active preferred | Flag: "was submitted", "is required to be", "will be shown" |
| Double negatives | Zero tolerance | Flag: "not unable", "not required to not", "not without" |
| Jargon | Flag or define | Unexpanded acronyms, technical terms, domain-specific language |
| Consistent terminology | Same term for same concept | Flag: "sign in" + "log in" on same page/flow |
Error Message Quality Rubric
Score each error message 0-3 on each dimension:
| Dimension | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| Identification | No message | Generic ("Error occurred") | Names the field | Names the field and exact problem |
| Cause | Absent | Vague | Partial | Full explanation |
| Solution | Absent | Vague hint | General guidance | Specific example or format |
| Tone | Blame ("You entered...wrong") | Neutral | Neutral + helpful | Supportive and constructive |
Minimum score to pass: 2 on Identification, 1 on Solution.
Error Message Examples
| Rating | Error Text |
|---|---|
| Fail | "Invalid input." |
| Fail | "You entered the wrong password." |
| Marginal | "Password is incorrect." |
| Pass | "The password doesn't match. Passwords are case-sensitive - check Caps Lock and try again." |
| Pass | "Email must include @ - for example, name@company.com" |
Reading Level Computation
Flesch-Kincaid Grade Level Formula
$$GL = 0.39 \times \frac{W}{S} + 11.8 \times \frac{Sy}{W} - 15.59$$
Where:
- $W$ = total words
- $S$ = total sentences
- $Sy$ = total syllables
Syllable counting rules:
- Count each vowel cluster (a, e, i, o, u) as one syllable
- Subtract one syllable for silent trailing e ("made" = 1, "make" = 1)
- Each word has at least 1 syllable
Grade Level Targets
| Content Type | Target GL | Rationale |
|---|---|---|
| Consumer web app (general) | <= 8 | ~50% of US adults read at Grade 8 or below |
| Government / public services | <= 6 | Plain language mandate standard |
| Healthcare patient-facing | <= 6 | Low health literacy is common |
| Legal terms of service | <= 10 with plain-language summary | Complex by nature, but summary required |
| Technical developer docs | <= 12 | Expert audience acceptable |
Quick-Estimate Method (when full computation is impractical)
Flag content for reading level review when:
- Any single sentence exceeds 35 words
- More than 30% of words exceed 3 syllables in a paragraph
- 3 or more Latin abbreviations in a single page ("i.e.", "e.g.", "et al.", "viz.")
Timeout Warning Requirements (2.2.1)
Detection Pattern
- Identify any page or application state with session persistence (authenticated areas, multi-step forms with temporary state)
- Check for: activity monitoring, session expiry timers, auto-logout functionality
- Verify warning mechanism exists when found
Compliant Implementation Pattern
// PASS: Session warning with extension option
const SESSION_TIMEOUT_MS = 15 * 60 * 1000; // 15 minutes
const WARNING_BEFORE_MS = 2 * 60 * 1000; // Warn 2 minutes before
let warningShown = false;
sessionTimer = setTimeout(() => {
if (!warningShown) {
warningShown = true;
showSessionWarning({
message: "Your session will expire in 2 minutes due to inactivity.",
extendLabel: "Stay signed in",
logoutLabel: "Sign out now",
onExtend: () => { resetTimer(); warningShown = false; },
onLogout: () => endSession()
});
}
}, SESSION_TIMEOUT_MS - WARNING_BEFORE_MS);
ARIA for Session Warning
<div role="alertdialog" aria-modal="true" aria-labelledby="session-title" aria-describedby="session-desc">
<h2 id="session-title">Session expiring</h2>
<p id="session-desc">Your session will expire in <span id="session-countdown">2:00</span> minutes.</p>
<button type="button" id="extend-btn" autofocus>Stay signed in</button>
<button type="button">Sign out</button>
</div>
COGA Guidance Mapping
Making Content Usable - Key Objectives
From the W3C COGA "Making Content Usable for People with Cognitive and Learning Disabilities" guidance:
| Objective | What to Check | Severity |
|---|---|---|
| Use a clear and understandable writing style | Reading level, plain language, sentence structure | High |
| Avoid creating excessive cognitive load | Step count in forms, memory demands, auto-advancing content | High |
| Provide reminders and feedback | Confirmation messages, progress indicators ("Step 2 of 4"), success confirmation | Medium |
| Help users avoid mistakes and recover from them | Validation before submit, undo capability, confirm destructive actions | High |
| Make forms easy to fill out | Pre-populate known data, stepwise format, visible format hints | High |
| Use a consistent and predictable layout | Navigation location, interactive element behavior, icon consistency | Medium |
| Use familiar icons and symbols | Standard iconography, labeled icons, no icon-only navigation | Medium |
| Avoid distorting a person's view of reality | No fake urgency timers, no dark patterns | High |
Severity Assessment for COGA Findings
| Finding Type | Severity | Rationale |
|---|---|---|
| 3.3.8 violation (paste disabled / CAPTCHA only) | Critical | Completely blocks authentication for many users |
| 3.3.7 violation (required re-entry of existing data) | High | Significant burden; causes abandonment |
| 2.2.1 violation (no timeout warning) | High | Data loss and user confusion |
| Reading level > Grade 10 (non-technical) | High | Excludes ~20% of adults |
| Error message with no correction guidance | High | Users cannot self-recover |
| Poor error message tone (blame language) | Medium | Anxiety increase; may cause abandonment |
| Inconsistent terminology across same flow | Medium | Confusion; increased cognitive load |
| Missing progress indicator in multi-step | Medium | User cannot gauge effort remaining |
| Reading level Grade 9-10 (general content) | Medium | Partial barrier |
| Jargon without definition | Low-Medium | Depends on density |
| Missing confirmation of success | Low | Uncertainty about whether action completed |
Integration Notes
When Used by web-accessibility-wizard
The wizard invokes cognitive-accessibility as part of Phase 3 (Forms and Input) and Phase 5 (Dynamic Content). Specifically:
- Phase 3: delegates 3.3.7 and 3.3.8 detection + error message quality to this skill
- Phase 5: delegates timeout warning detection to this skill
When Used Standalone
cognitive-accessibility agent loads this skill and applies the full Phase 2 + Phase 3 assessment independently. It accepts page URLs, component files, or plain text content blocks.
Handoffs from this Skill
- Form validation specifics ->
forms-specialist - ARIA state for error announcements ->
aria-specialist - Live region for timeout warnings ->
live-region-controller - WCAG criterion explanations ->
wcag-guide
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
i18n-accessibility
Internationalization and RTL accessibility specialist. Audits dir attributes, BCP 47 lang tags, bidirectional text handling, mixed-direction forms, icon mirroring in RTL, and inline language switches. Ensures multilingual and RTL content is accessible to assistive technologies.
testing-coach
Accessibility testing coach for web applications. Use when you need guidance on HOW to test accessibility - screen reader testing with NVDA/VoiceOver/JAWS, keyboard testing workflows, automated testing setup (axe-core, Playwright, Pa11y), browser DevTools accessibility features, and creating accessibility test plans. Does not write product code - teaches and guides testing practices.
pdf-scan-config
Internal helper agent. Invoked by orchestrator agents via Task tool. PDF accessibility scan configuration manager. Use to create, edit, validate, or explain .a11y-pdf-config.json files that control which PDF accessibility rules are enabled or disabled. Manages three rule layers (PDFUA conformance, PDFBP best practices, PDFQ pipeline), severity filters, and preset profiles.
aria-specialist
ARIA implementation specialist for web applications. Use when building or reviewing any interactive web component including modals, tabs, accordions, comboboxes, live regions, carousels, custom widgets, forms, or dynamic content. Also use when reviewing ARIA usage for correctness. Applies to any web framework or vanilla HTML/CSS/JS.
Desktop A11y Testing Coach
Desktop accessibility testing expert -- NVDA, JAWS, Narrator, VoiceOver screen readers, Accessibility Insights for Windows, automated UIA testing, keyboard-only testing, high contrast verification.
lighthouse-bridge
Internal helper agent. Invoked by orchestrator agents via Task tool. Internal helper that bridges Lighthouse CI accessibility audit data with the agent ecosystem. Parses Lighthouse reports, normalizes accessibility findings, tracks score regressions, and deduplicates against local scans.
Didn't find tool you were looking for?