• Mark Schillaci's avatar
    Alternative approach to aria-invalid content on Android · 78d7ee38
    Mark Schillaci authored
    This CL implements an alternative approach to aria-invalid
    content on Android. The current implementation, see here:
    
    https://chromium-review.googlesource.com/c/chromium/src/+/1320219
    
    uses an ElapsedTimer to ensure that content invalid is set on
    a focused field only during the first 6 seconds after the field
    was focused. This prevents the user from hearing the invalid
    content after each letter typed beyond initial 6 seconds, since
    it is overwhelming to hear so many warnings.
    
    The new implementation uses a debounce approach and instead will
    communicate that an item is content invalid at any time, but at
    most once per 3 seconds. This is closer to a "slow drip", which
    will allow the user to always know the content is invalid, but
    without so many utterances.
    
    This new approach also shifts the code to Java and tracks only
    the currently focused virtualViewId and the time index of the
    most recent utterance, as opposed to the ElapsedTimer approach.
    This eliminates all ElapsedTimer objects from the
    browser_accessibility_android nodes.
    
    
    AX-Relnotes: Throttled the frequency of invalid content warnings on Android.
    Change-Id: I1232d70150b0eb6a68737bce9d51eb67834a5c1c
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2354836
    Commit-Queue: Mark Schillaci <mschillaci@google.com>
    Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
    Reviewed-by: default avatarAkihiro Ota <akihiroota@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#798768}
    78d7ee38
browser_accessibility_android.h 6.31 KB