Never treat the focused element as invisible or ignored for accessibility.

AXPlatformNodeBase::IsInvisibleOrIgnored is used to determine if, and
how an element should be exposed to platform assistive technologies.
It was not taking into account if the element in question was focused.
As a result, if an author set aria-hidden to "true" on an ancestor of
a focused widget, assistive technologies might not be able to obtain
the selected text or receive the expected notifications when the text
or caret offset changes.

Because it is considered an authoring error to "hide" the focused
element from assistive technologies, modify IsInvisibleOrIgnored to
return false when the node is focused.

Ax-Relnotes: Improves accessibility of focused widgets which have been
incorrectly marked as hidden due to authoring error.

Bug: 1144707
Change-Id: Id97053c1cddf3fa91518aa9950f4bb8ba2ca003a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2521570
Commit-Queue: Joanmarie Diggs <jdiggs@igalia.com>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#827262}
48 files changed
tree: 68177d07c36e43f6b7b3dfa5f66501ded22f2b51
  1. .clang-format
  2. .clang-tidy
  3. .eslintrc.js
  4. .git-blame-ignore-revs
  5. .gitattributes
  6. .gitignore
  7. .gn
  8. .vpython
  9. .vpython3
  10. .yapfignore
  11. AUTHORS
  12. BUILD.gn
  13. CODE_OF_CONDUCT.md
  14. DEPS
  15. DIR_METADATA
  16. ENG_REVIEW_OWNERS
  17. LICENSE
  18. LICENSE.chromium_os
  19. OWNERS
  20. PRESUBMIT.py
  21. PRESUBMIT_test.py
  22. PRESUBMIT_test_mocks.py
  23. README.md
  24. WATCHLISTS
  25. android_webview/
  26. apps/
  27. ash/
  28. base/
  29. build/
  30. build_overrides/
  31. buildtools/
  32. cc/
  33. chrome/
  34. chromecast/
  35. chromeos/
  36. cloud_print/
  37. codelabs/
  38. codereview.settings
  39. components/
  40. content/
  41. courgette/
  42. crypto/
  43. dbus/
  44. device/
  45. docs/
  46. extensions/
  47. fuchsia/
  48. gin/
  49. google_apis/
  50. google_update/
  51. gpu/
  52. headless/
  53. infra/
  54. ios/
  55. ipc/
  56. jingle/
  57. media/
  58. mojo/
  59. native_client_sdk/
  60. net/
  61. pdf/
  62. ppapi/
  63. printing/
  64. remoting/
  65. rlz/
  66. sandbox/
  67. services/
  68. skia/
  69. sql/
  70. storage/
  71. styleguide/
  72. testing/
  73. third_party/
  74. tools/
  75. ui/
  76. url/
  77. weblayer/
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.