Skip to content

Investigate Duplicate Axe-core Results #117

Description

@DevOlabode

Description

Summary

Investigate why the Vizably scan results for stripe.com show "Headings should not be empty" in both the Problems section under Structure and Semantics and the What's Good section.

Problem

During an end-user walkthrough, the same accessibility rule appeared to be reported as both a problem and a positive result. This may indicate an issue in how Axe-core results are processed, categorized, or displayed.

Proposed Work

  • Reproduce the issue using stripe.com or another website that triggers the same rule.
  • Inspect the raw Axe-core results returned by the scanner.
  • Determine whether the duplicate classification originates from Axe-core or Vizably's result-processing logic.
  • Verify how violations and successful checks are mapped into the Problems and What's Good sections.
  • Fix the issue if it is caused by Vizably's processing or presentation logic.
  • Add regression tests covering the affected behavior.

Acceptance Criteria

  • The source of the duplicate result is identified.
  • A rule is not incorrectly displayed as both a problem and a positive result.
  • Existing accessibility scan results continue to be reported correctly.
  • Automated tests cover the corrected behavior.

Activity

  1. self-assigned this
    on Aug 21, 2026
  2. ieliofficial commented on Sep 11, 2026

    @ieliofficial
    Member

    Found it, no investigation needed. axeTransformer.js:113 is whatsGood: passes.map(...) with no filter against violations. Axe puts a rule in both passes and violations when some nodes pass and others fail, so stripe has one empty heading and several fine ones and the rule lands in both lists. Fix is to drop any rule id from passes that also appears in violations. Worth doing at the same time as the grouping work, since What is good is currently 44 flat rows for one real finding. Two other small things on that screen: ResultsView.jsx:125 renders "1 issues total" with no pluralisation, and the passed checks could group by axe cat.* tags instead of one list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions