0

[a11y] Presubmit ban disruptive a11y announcements

Ban announceForAccessibility and TYPE_ANNOUNCEMENT, deprecated in
Baklava (Android 16).

Fixed: 376759129
Test: PRESUBMIT_test.py
Change-Id: I55b9e8f77d5ec4cb865da94f230a3c57d4bcf4e8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6301847
Commit-Queue: Jenna Himawan <jhimawan@google.com>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Lijin Shen <lazzzis@google.com>
Cr-Commit-Position: refs/heads/main@{#1424803}
This commit is contained in:
Jenna Himawan
2025-02-25 14:22:31 -08:00
committed by Chromium LUCI CQ
parent 61333e40ef
commit 859865d196
2 changed files with 21 additions and 0 deletions

@ -290,6 +290,15 @@ _BANNED_JAVA_FUNCTIONS : Sequence[BanRule] = (
'base/test/android/javatests/src/org/chromium/base/test/util/HistogramWatcher.java',
),
),
BanRule(
r'/((announceForAccessibility\()|TYPE_ANNOUNCEMENT)',
('Android 16 deprecates accessibility announcements, characterized by '
'the use of announceForAccessibility or the dispatch of '
'TYPE_ANNOUNCEMENT accessibility events. See '
'https://developer.android.com/about/versions/16/behavior-changes-all#disruptive-a11y'
' for more details and suggested replacements.', ),
False,
),
)
_BANNED_JAVASCRIPT_FUNCTIONS : Sequence [BanRule] = (

@ -2966,6 +2966,12 @@ class BannedTypeCheckTest(unittest.TestCase):
['ResourcesCompat.getDrawable();']),
MockFile('some/java/problematic/getdrawable2.java',
['getResources().getDrawable();']),
MockFile('some/java/problematic/announceForAccessibility.java',
['view.announceForAccessibility(accessibilityText);']),
MockFile(
'some/java/problematic/accessibilityTypeAnnouncement.java', [
'accessibilityEvent.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);'
]),
]
errors = PRESUBMIT.CheckNoBannedFunctions(input_api, MockOutputApi())
@ -2990,6 +2996,12 @@ class BannedTypeCheckTest(unittest.TestCase):
'some/java/problematic/getdrawable1.java' in errors[0].message)
self.assertTrue(
'some/java/problematic/getdrawable2.java' in errors[0].message)
self.assertTrue('some/java/problematic/announceForAccessibility.java'
in errors[0].message)
self.assertTrue(
'some/java/problematic/accessibilityTypeAnnouncement.java' in
errors[0].message)
def testBannedCppFunctions(self):
input_api = MockInputApi()