Closed Bug 812515 Opened 8 years ago Closed 8 years ago

[AccessFu] On app.net, the tabs for My Stream, Mentions, and Global are skipped.

Categories

(Core :: Disability Access APIs, defect)

ARM
Android
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla20

People

(Reporter: MarcoZ, Assigned: eeejay)

Details

Attachments

(2 files)

STR:
1. With TalkBack running, go to http://alpha.app.net and log in.
2. Start swiping left and right through the tabs at the top, which are announced as "graphic link".

Expected: All six list items should be reached: app.net, My Stream, Mentions, Global, the unlabeled link that opens the profile-related sub menu, and About.
Actual: Only app.net and the profile link are reached, all other four links are skipped.

This worked in the Tuesday or Wednesday build, but is broken in the Thursday, November 15, build. Both Android 4.1 and 4.2.
(In reply to Marco Zehe (:MarcoZ) from comment #0)
> STR:
> 1. With TalkBack running, go to http://alpha.app.net and log in.
> 2. Start swiping left and right through the tabs at the top, which are
> announced as "graphic link".
> 
> Expected: All six list items should be reached: app.net, My Stream,
> Mentions, Global, the unlabeled link that opens the profile-related sub
> menu, and About.
> Actual: Only app.net and the profile link are reached, all other four links
> are skipped.
> 
> This worked in the Tuesday or Wednesday build, but is broken in the
> Thursday, November 15, build. Both Android 4.1 and 4.2.

I think this reflects changes in app.net, and not in Firefox. Generally they could do a better job making the top tabs accessible.
Removing regression key work as I don't think this is a regression on our part, but probably a change in app.net (they are Alpha after all!)
Keywords: regression
I also looked at the page with Desktop Firefox. Don't know if that's a different page we're getting, but there, these appear as normal list items (links), with some sort of symbol preceeding them. It's a unicode symbol whose value I might need to dig up. So the text in there is that symbol plus a link to "My Stream" etc.
Can we reduce the test case? I want to understand exactly what is happening.
The My Stream, Mentions, and Global items look like this:

38                                                                                                             <li class="active ta-center m-yui3-u-1-5">
39         <a href="/">
40             <span class='m-yui3-u-1'><i class="icon-home icon-white"></i></span>
41             <span class='m-yui3-u-none'>My Stream</span>
42         </a>
43     </li>

And the About item looks like this:

80                                                     <li class="dropdown about-dropdown-menu pull-right yui3-u">
81                         <a href="#" class="dropdown-toggle  m-yui3-u-none " data-toggle="dropdown">
82                             <span>
83                                 About
84                                 <b class="caret"></b>
85                             </span>
86                         </a>
87                         <ul class="dropdown-menu">
88                                 <li class=""><a href="https://directory.app.net/" target="_blank">App.net Directory</a></li>
89     <li class=""><a href="/tour/find-friends/">Find Friends</a></li>
90     <li class=""><a href="http://support.app.net" target="_blank">FAQ</a></li>
91     <li class=" first"><a href="//account.app.net/legal/terms/">Terms of Service</a></li>
92     <li class=""><a href="//account.app.net/legal/privacy/">Privacy Policy</a></li>
93 
94                         </ul>
95                     </li>
Note the profile menu contents was lazily generated AFAICT.
OK I don't think there is a deeper problem with our a11y tree so fixing this in AccessFu is ok... on to review...
Comment on attachment 682633 [details] [diff] [review]
Land on static text if it is not a list bullet item.

Review of attachment 682633 [details] [diff] [review]:
-----------------------------------------------------------------

I don't really understand why this fixes the issue. If the 'blank'

::: accessible/src/jsat/TraversalRules.jsm
@@ +49,5 @@
>    [Ci.nsIAccessibleRole.ROLE_MENUITEM,
>     Ci.nsIAccessibleRole.ROLE_LINK,
>     Ci.nsIAccessibleRole.ROLE_PAGETAB,
>     Ci.nsIAccessibleRole.ROLE_GRAPHIC,
> +   Ci.nsIAccessibleRole.ROLE_STATICTEXT,

Do you need to add a // XXX TODO about css generated content?

@@ +96,5 @@
> +        {
> +          let parent = aAccessible.parent;
> +          // Ignore prefix static text in list items. They are typically bullets or numbers.
> +          if (parent.childCount > 1 && aAccessible.indexInParent == 0 &&
> +              parent.role == Ci.nsIAccessibleRole.ROLE_LISTITEM)

(A bit hacky)

@@ +97,5 @@
> +          let parent = aAccessible.parent;
> +          // Ignore prefix static text in list items. They are typically bullets or numbers.
> +          if (parent.childCount > 1 && aAccessible.indexInParent == 0 &&
> +              parent.role == Ci.nsIAccessibleRole.ROLE_LISTITEM)
> +            return Ci.nsIAccessibleTraversalRule.FILTER_IGNORE;

optional: I'd like a line space here before the next return.
Attachment #682633 - Flags: review?(dbolter) → review+
(In reply to Marco Zehe (:MarcoZ) from comment #4)
> I also looked at the page with Desktop Firefox. Don't know if that's a
> different page we're getting, but there, these appear as normal list items
> (links), with some sort of symbol preceeding them. It's a unicode symbol
> whose value I might need to dig up. So the text in there is that symbol plus
> a link to "My Stream" etc.

In mobile they are different. They don't include the text label, just the unicode character which is rendered via CSS, not content. That is why it is a static text, and not a regular text leaf.
(In reply to David Bolter [:davidb] from comment #10)
> Comment on attachment 682633 [details] [diff] [review]
> Land on static text if it is not a list bullet item.
> 
> Review of attachment 682633 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> I don't really understand why this fixes the issue. If the 'blank'
> 
> ::: accessible/src/jsat/TraversalRules.jsm
> @@ +96,5 @@
> > +        {
> > +          let parent = aAccessible.parent;
> > +          // Ignore prefix static text in list items. They are typically bullets or numbers.
> > +          if (parent.childCount > 1 && aAccessible.indexInParent == 0 &&
> > +              parent.role == Ci.nsIAccessibleRole.ROLE_LISTITEM)
> 
> (A bit hacky)
> 

That is the only way I could think of for addressing the issue of list bullets.
https://hg.mozilla.org/mozilla-central/rev/51d2b0ccc4b5
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla20
Verified on Firefox for Android 20.0a1 2012-12-03. The links and separate text leaves are now being navigated to on the mobile version of alpha.app.net. Guess it can't be helped given the weird markup they're currently using.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.