New issue
Advanced search Search tips

Issue 646846 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug-Regression
Team-Accessibility



Sign in to add a comment

VoiceOver broke on checkboxes on 53

Reported by ro...@reala.net, Sep 14 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:51.0) Gecko/20100101 Firefox/51.0

Steps to reproduce the problem:
1. Load http://govuk-elements.herokuapp.com/form-elements/#form-checkboxes
2. Start VoiceOver reading from the checkbox examples
3. Listen to what it says

What is the expected behavior?
VoiceOver should read ‘checkbox, unchecked, Waste from animal carcasses’

What went wrong?
VoiceOver reads ‘checkbox, unchecked’. None of the labels are being read out.

Did this work before? Yes Chrome 52

Chrome version: Version 53.0.2785.113 (64-bit)  Channel: n/a
OS Version: OS X 10.11.6
Flash Version: 

53 is the tipping point. Canary 55 is also broken. Chrome 52 works, as does Safari.
 
Labels: Needs-Bisect
Owner: ellyjo...@chromium.org
Status: Assigned (was: Unconfirmed)
Accessibility -> ellyjones

Also needs-bisect
Cc: dmazz...@chromium.org
Components: UI>Accessibility
Labels: -Needs-Bisect M-55 ReleaseBlock-Stable hasbisect
Able to reproduce the issue on Mac 10.11.6 using Stable 53.0.2785.113/116,Beta 54.0.2840.27 and canary 55.0.2860.0.
This is a regression issue broken in M53 as below.
This is working fine on Windows 10 and Ubuntu 14.04 using Chromevox extension.

Bisect info:
-------------
Good :53.0.2769.0
Bad : 53.0.2770.0

CHANGELOG URL:
https://chromium.googlesource.com/chromium/src/+log/05aabc6c278421aaa055d4a31aac6e63fc8fd8fd..ecb0fd43ada77f1ff2c2c322348fa5fdb9fb4f3a

Possible suspect : https://codereview.chromium.org/2052783002
dmazzoni@ : Could you please take a look into this if its related to your change.
Added ReleaseBlock-Stable against M55, please modify if not appropriate.
Cc: -dmazz...@chromium.org ellyjo...@chromium.org
Owner: dmazz...@chromium.org
Minimal repro case attached: "checkbox1" has no label, "checkbox2" has a label. The difference is "position: relative", which I believe forces a layer, so I'm like 95% sure this is caused by dmazzoni@'s https://codereview.chromium.org/2052783002. Reassigning.
checkbox-nest.html
249 bytes View Download
OK, fix coming.

While that particular change exposed the bug, the real fix is in Mac-specific code, it was a corner case that wasn't caught before.

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 16 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/837c2040011f4431c0e9e7b1bc938ca4106a33b1

commit 837c2040011f4431c0e9e7b1bc938ca4106a33b1
Author: dmazzoni <dmazzoni@chromium.org>
Date: Fri Sep 16 22:45:12 2016

Mac accessibility: only use AXTitleUIElement if that element has valid text.

On Mac OS X, the accessible name of an object can be exposed in three
different ways:

AXTitle: for visible text
AXDescription: for accessible text (like image "alt" or aria-label)
AXTitleUIElement: for controls labeled by another element

VoiceOver is kind of picky, it only wants us to expose just one of the
three, not multiple ones, but to be more confusing it ignores
AXTitleUIElement if it's not a control.

The bug here was that there was an obscure case where a checkbox's
name came from a label, but the label's text was "hidden" by a
heuristic that tries to combine the checkbox and its text into a
single element for simplicity. All of that is fine, but we were
exposing AXTitleUIElement for the checkbox when the element it
pointed to had empty text.

The fix is just to make sure the element pointed to by
AXTitleUIElement actually has text, otherwise we fall back on
AXTitle.

BUG= 646846 

Review-Url: https://codereview.chromium.org/2348663002
Cr-Commit-Position: refs/heads/master@{#419313}

[modify] https://crrev.com/837c2040011f4431c0e9e7b1bc938ca4106a33b1/content/browser/accessibility/browser_accessibility_cocoa.mm
[modify] https://crrev.com/837c2040011f4431c0e9e7b1bc938ca4106a33b1/content/browser/accessibility/dump_accessibility_tree_browsertest.cc
[modify] https://crrev.com/837c2040011f4431c0e9e7b1bc938ca4106a33b1/content/test/data/accessibility/aria/aria-posinset-expected-mac.txt
[modify] https://crrev.com/837c2040011f4431c0e9e7b1bc938ca4106a33b1/content/test/data/accessibility/html/caption-expected-mac.txt
[modify] https://crrev.com/837c2040011f4431c0e9e7b1bc938ca4106a33b1/content/test/data/accessibility/html/fieldset-expected-mac.txt
[modify] https://crrev.com/837c2040011f4431c0e9e7b1bc938ca4106a33b1/content/test/data/accessibility/html/figcaption-expected-mac.txt
[add] https://crrev.com/837c2040011f4431c0e9e7b1bc938ca4106a33b1/content/test/data/accessibility/html/input-checkbox-label-expected-mac.txt
[add] https://crrev.com/837c2040011f4431c0e9e7b1bc938ca4106a33b1/content/test/data/accessibility/html/input-checkbox-label.html
[modify] https://crrev.com/837c2040011f4431c0e9e7b1bc938ca4106a33b1/content/test/data/accessibility/html/legend-expected-mac.txt

Status: Fixed (was: Assigned)

Sign in to add a comment