Docs accessibility issues - Orange-OpenSource/Orange-Boosted-Bootstrap Wiki

On main, pa11y-ci is configured to ignore a few things.

Here's a comprehensive list of ignored rules and elements, to discuss:

  1. Upstream: The heading-order rule is ignored, since Bootstrap doesn't want to improve their heading hierarchy (and this is probably not a big deal—see "When do headings fail WCAG?" on The Paciello Group's blog).
  2. Upstream: The scrollable-region-focusable rule is ignored: code blocks everywhere aren't keyboard focusable, and Bootstrap is in no hurry fixing this…
  3. 3rd party: [id*='tarteaucitron'] for, well, Tarteaucitron, which is a nightmare to fix at some point.
  4. 3rd party: #TableOfContents is flagged as redundant nav landmark, which is generated by Hugo (so we can't change it) and moreover is not an issue at all.
  5. Orange brand: .text-primary, .navbar-light .navbar-brand, .active, [aria-current], .accordion-button:not(.collapsed) are ignored since their contrasts aren't sufficient (#f16e00 on #fff, brand side).
  6. Orange brand: select:disabled, [disabled] label and [disable + label] for contrast issues (brand side), however WCAG 2.1 does not require sufficient contrast for inactive elements.
  7. .modal since it's flagged as aria-hidden containing interactive content: this is how the modal works…
  8. .bd-example nav is flagged too for the same reason, but it's meant to document nav usage, so…
  9. is flagged waiting for to be fixed.
  10. .exclude-from-pa11y-analysis is flagged to avoid an analysis of some Bootstrap examples not yet Orange-ified.
  11. a.disabled is flagged due to some errors in (TODO: do some archeology and find the exact reason).
  12. .form-check.form-switch is flagged because of a possible error of Axe (see
  13. .body > div.position-fixed:last-of-type is flagged to fix what's in site/layouts/_default/docs.html > <div class="position-fixed"><input type="text" tabindex="-1"></div> (here to avoid a scrolling bug)

To maybe fine-tune our criterias, pa11y's wiki has a comprehensive list of ignorable rules.

⚠️ ** Fallback** ⚠️