Analysers
The 14accessibility analysers that ship with Paradise. Each takes the integrated DocumentModel — HTML plus the ActionLanguage intermediate representation (IR) plus CSS, see Architecture — and reports a specific class of issue. Pick any to see what it detects, the WCAG criteria it maps to, and a short broken-code example.
Multi-model analysers
- MouseOnlyClickAnalyzer
- Reports click handlers without a keyboard equivalent. Cross-file aware.
- OrphanedEventHandlerAnalyzer
- Detects handlers attached to selectors that don't resolve to any element.
- MissingAriaConnectionAnalyzer
- Validates aria-labelledby, aria-describedby, and aria-controls targets exist.
- VisibilityFocusConflictAnalyzer
- Catches focusable elements hidden by CSS — keyboard reaches them, sight does not.
- FocusOrderConflictAnalyzer
- Detects chaotic tabindex patterns across the page (positive values, gaps).
- KeyboardNavigationAnalyzer
- Validates that custom widgets implement the keyboard patterns their roles imply.
- ARIASemanticAnalyzer
- Validates ARIA role / state / property combinations against the WAI-ARIA spec.
- WidgetPatternAnalyzer
- Validates all twenty-one WAI-ARIA widget patterns end-to-end.
Framework-specific analysers
- ReactA11yAnalyzer
- React-specific patterns: hooks, portals, ref forwarding, event propagation.
- SvelteReactivityAnalyzer
- Svelte directives: bind:, on:, class:, transition: applied to a11y patterns.
- VueReactivityAnalyzer
- Vue patterns: v-model, v-on, v-if, v-show, scoped slots.
- AngularReactivityAnalyzer
- Angular patterns: [(ngModel)], structural directives, change detection.
JavaScript analysers
- FocusManagementAnalyzer
- Validates focus changes — moves to dialogs, restoration, traps.
Structural HTML analysers
- StructuralHTMLAnalyzer
- Document structure: headings hierarchy, landmark coverage, list nesting.
Reading on
- Architecture — how the analysers consume the integrated DocumentModel.
- ActionLanguage IR — the JavaScript representation the analysers reason over.
- Back to Paradise.