Prevent screen reader from announcing checkbox label twice

Due to duplicate labeling from the aria-label of the checkbox and from the label element's for attribute, screen readers announce the checkbox label twice. This patch prevents that by removing the aria-label on the checkbox and instead setting a title attribute.

Note the for attribute on the checkbox label was last added in this CL - https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2077666
to address a regression introduced here - https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2062603.

There's a bit of friction with this change because it requires updating existing tests that depend on the checkbox aria-label selector. Future tests would also need to align with this change.

There was an initial attempt to land a similar change but then that got reverted in here - https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3948895

Nonetheless, having both an aria-label on the checkbox and the for attribute on the label will cause the duplicate screen reader announcement.


Bug: 1414952
Change-Id: If4342b860d07b0a9494b90f4d15cb99688cb9d6e
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/4591249
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Commit-Queue: Sylvester Elorm Coch <elormcoch@microsoft.com>
15 files changed
tree: c4a81a49274dee718fd65080fc1a888355ad3d09
  1. .vscode/
  2. build_overrides/
  3. config/
  4. docs/
  5. extension-api/
  6. front_end/
  7. inspector_overlay/
  8. node_modules/
  9. scripts/
  10. test/
  11. third_party/
  12. v8/
  13. .clang-format
  14. .editorconfig
  15. .eslintignore
  16. .eslintrc.js
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .mailmap
  22. .npmignore
  23. .npmrc
  24. .style.yapf
  25. .stylelintignore
  26. .stylelintrc.json
  27. AUTHORS
  28. BUILD.gn
  29. codereview.settings
  30. DEPS
  31. LICENSE
  32. OWNERS
  33. package-lock.json
  34. package.json
  35. PRESUBMIT.py
  36. README.md
  37. tsconfig.json
  38. WATCHLISTS
README.md

Chrome DevTools frontend

npm package

The client-side of the Chrome DevTools, including all JS & CSS to run the DevTools webapp.

Source code

The frontend is available on chromium.googlesource.com.

Project documentation

Check out the project documentation for instructions to set up, use, and maintain a DevTools front-end checkout, as well as design guidelines, and architectural documentation.

Additional references

Source mirrors

DevTools frontend repository is mirrored on GitHub.

DevTools frontend is also available on NPM as the chrome-devtools-frontend package. It's not currently available via CJS or ES modules, so consuming this package in other tools may require some effort.

The version number of the npm package (e.g. 1.0.373466) refers to the Chromium commit position of latest frontend git commit. It's incremented with every Chromium commit, however the package is updated roughly daily.

Getting in touch