Accessibility viewer
Review and triage accessibility issues found by automated audits.
The Accessibility Viewer displays the results of accessibility audits in a structured, actionable format.
Accessing the viewer
- From the Tests tab, click the accessibility icon on a run that includes a11y results
- Direct URL:
/projects/[slug]/a11y-viewer?runId=[runId]
Viewer layout
The accessibility viewer includes:
- Scenario sidebar — navigate between tested scenarios
- Viewport toggles — switch between phone, tablet, and desktop results
- Score gauge — overall accessibility score with key performance indicators
- Screenshot — annotated screenshot with clickable bounding-box overlays highlighting issues
Analysis tabs
The viewer provides five analysis tabs:
Violations
Lists all accessibility violations found, grouped by rule. Each violation shows the rule ID, description, impact level, and affected elements.
Elements
A searchable and sortable table of all affected elements. Filter by impact level (critical, serious, moderate, minor) and sort by selector, rule, or impact.
All Rules
A comprehensive list of all rules evaluated during the audit, including passed rules. Expandable rows show remediation guidance with before/after code snippets.
WCAG
Conformance summary organized by WCAG level (A, AA, AAA) and principle groups (Perceivable, Operable, Understandable, Robust).
RGAA
Conformance summary mapped against the 106 criteria of RGAA 4.1 (the French national standard), grouped by the 13 RGAA themes. Each criterion is shown with its status badge — Conforme, Non conforme, Non applicable, or À auditer (review required) — and links to the official accessibilite.numerique.gouv.fr documentation. See RGAA scoring (France) below for the methodology.
Severity levels
| Level | Meaning |
|---|---|
| Critical | Blocks access for users with disabilities |
| Serious | Significantly impacts usability for assistive technology users |
| Moderate | Causes some difficulty but has workarounds |
| Minor | Best practice violation with minimal impact |
Scoring methodology
VisualQ uses a Passiro-compliant penalty model for accessibility scoring. Each scenario starts at 100 and points are deducted for each violated rule, weighted by severity, with diminishing returns on repeated occurrences of the same rule.
Scope
Audits are restricted to WCAG 2.0 and 2.1 Level A and AA rules from axe-core (wcag2a, wcag2aa, wcag21a, wcag21aa). Best-practice and AAA rules are excluded so the score reflects legal-conformance criteria (referenced by the European Accessibility Act).
Per-scenario formula
For each violated rule:
rule_impact = severity_weight × √(occurrences)
scenario_score = max(0, 100 - Σ rule_impacts)Severity weights:
| Severity | Weight |
|---|---|
| Critical | 25 |
| Serious | 15 |
| Moderate | 5 |
| Minor | 1 |
The square-root scaling means 100 occurrences of the same rule cost only 10× a single occurrence (not 100×) — repeated issues are penalized but don't completely obliterate the score.
Run-level score
When a run contains multiple scenarios, the run score is the arithmetic mean of all scenario scores. A single failing scenario won't destroy the score of an otherwise clean test suite.
Score ranges
| Range | Meaning |
|---|---|
| 90–100 | Excellent — strong foundation for WCAG AA conformance |
| 70–89 | Good — minor issues, prioritize critical/serious findings |
| 50–69 | Needs work — multiple barriers exist |
| 25–49 | Poor — significant barriers across the page |
| 0–24 | Critical — severe failures, immediate remediation required |
Note on historical scores — scores produced before this scoring update used a different formula (passed-rule weighted ratio) that systematically inflated values for content-heavy pages. Historical scores in your run history are not directly comparable to scores produced after the update.
RGAA scoring (France)
In addition to the Passiro score, every accessibility audit also produces an RGAA 4.1 dual score that mirrors the public methodology used by France TV and other French public-sector projects. The two scores answer different questions:
- Passiro score (
/100) — how severe are the issues we found? Heavily weights critical violations. - RGAA scores (
%) — what share of legally-required criteria are conform? Counts criteria, not occurrences.
Criteria scope
The 106 RGAA 4.1 criteria are split between:
- Automatable criteria — reachable via axe-core (e.g. image alternatives, link text, color contrast, page lang). Their status is computed from the audit:
Conforme— at least one passing axe rule, no failure on any linked WCAG SC.Non conforme— at least one failing axe rule on a linked WCAG SC.Non applicable— only inapplicable axe data (the criterion does not apply to this page).
- Non-automatable criteria — require human review (e.g. video transcripts, complex tables, alternative content for cryptic ASCII art). They are flagged À auditer / review required in the UI and are excluded from the score so an automated tool never falsely claims conformance.
Per-scenario rate (tauxConformite)
For each page (scenario × viewport), only criteria classified as conforme or non conforme count:
tauxConformite = conformes / (conformes + nonConformes) × 100Non applicable and À auditer criteria are excluded from both numerator and denominator.
Run-level rates
When a run contains multiple scenarios, two complementary rates are produced — matching the official France TV public methodology:
| Metric | Formula | Reading |
|---|---|---|
| Taux global | Aggregate criteria across all scenarios; a criterion is non conforme if it fails on at least one scenario (worst-case). | The "legal" rate — what an RGAA auditor would report for the site. |
| Taux moyen | Arithmetic mean of each scenario's tauxConformite. | The "operational" rate — useful to spot a single bad page hidden in an otherwise clean suite. |
Taux global ≤ Taux moyen by construction. A widening gap usually means one scenario carries most of the regressions — start triaging there.
Where the scores appear
- Project A11y pillar page — three KPI cards:
Score (Passiro),RGAA Taux global,RGAA Taux moyen. - A11y viewer header — Passiro score gauge alongside the two RGAA percentages.
- RGAA tab — drill-down list of the 106 criteria for the selected scenario, grouped by theme, with search/filter and links to the official documentation.
Keyboard shortcuts
The viewer supports keyboard shortcuts for efficient navigation. Press ? to see the full list.
Exporting results
Export your accessibility audit results in multiple formats:
- JSON — structured data for programmatic processing
- CSV — spreadsheet-compatible format
- Print — printer-friendly report
Trend chart
The trend chart shows how your accessibility score and violation count change over time. It requires at least 2 completed runs and displays delta badges showing improvement or regression between runs.
Tips
- Focus on critical and serious issues first
- Use the CSS selectors to locate elements in your codebase
- Run a11y tests regularly to track progress over time
- Use the WCAG tab to systematically address conformance gaps
- Use the RGAA tab when you need a French-regulation conformance view; pair
Taux globalwithTaux moyento detect single-scenario regressions - Don't forget the À auditer criteria — automated tools can't verify them, but they're still required for full RGAA conformance