Closed Bug 1053279 Opened 10 years ago Closed 7 years ago

Make the treeherder front-end more accessible

Categories

(Tree Management :: Treeherder, defect, P3)

defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: MarcoZ, Assigned: wlach)

References

Details

(Keywords: access, regression)

Attachments

(1 file)

Right now, the front-end has a lot of clickables that have a) no label and b) no roles, states, and keyboard accessibility.
I wrote a while back how to make these clickables accessible:
http://www.marcozehe.de/2013/04/24/easy-aria-tip-6-making-clickables-accessible/

I request that these be followed to make treeherder accessible for the blind employees and volunteers. :) Please ping me for feedback.
Priority: -- → P1
From IRC:
"keyboard focus visibility should also be ensured. Basically every :hover: should be accompanied by an :focus: in the CSS."
I will have a look this week, and see if I'm able to make at least some of the needed changes.
Marco is there any of this accessibility functionality missing in TBPL? Just so we have a baseline for comparison.
Flags: needinfo?(marco.zehe)
On a quick initial look it looks like the use of tabindex=0 in the markup on the job for tabbing through the jobs(which works), causes all of the processKeyboardEvents shortcuts to be ignored. i/j/n/k/p/u/[spacebar] for the various toggles, navigation to classified/unclassified failures, pinning, etc.
(In reply to Jonathan French (:jfrench) from comment #3)
> Marco is there any of this accessibility functionality missing in TBPL? Just
> so we have a baseline for comparison.

TBPL is not particularly accessible, it is difficult to get at information. Since this is  a new development, I was hoping to be able to influence early on so we can get something better than TBPL.

If you're using j and k for navigation, making the items focusable via tabindex="-1" may be the right option, with only one tab stop at the container. That would then manage the actual focused items via aria-activedescendant, whose value always points at the actually focused item's ID. Not sure about the roles, what htese should be visually. Listbox/option? Or something similar to what Twitter does maybe. They have a pretty good implementation of such rich content, where j and k navigate by tweet, and tab allows to interact with each tweet more. They may be using a focus on the itemt hat has tabindex="-1", allowing the rest of the tab order to flow naturally.
Hope this helps!
Flags: needinfo?(marco.zehe)
Agreed this is needed, but can be done post-transition.
(In reply to Marco Zehe (:MarcoZ) from comment #5)
> (In reply to Jonathan French (:jfrench) from comment #3)
> 
> If you're using j and k for navigation, making the items focusable via
> tabindex="-1" may be the right option, with only one tab stop at the
> container. That would then manage the actual focused items via
> aria-activedescendant, whose value always points at the actually focused
> item's ID. Not sure about the roles, what htese should be visually.
> Listbox/option? Or something similar to what Twitter does maybe. They have a
> pretty good implementation of such rich content, where j and k navigate by
> tweet, and tab allows to interact with each tweet more. They may be using a
> focus on the itemt hat has tabindex="-1", allowing the rest of the tab order
> to flow naturally.
> Hope this helps!

Thanks Marco! I had a quick look at those properties yesterday, unfortunately I saw the same behavior, but I did not spend a large amount of time trying to sort out why. I am leaving this bug unassigned for now in case anyone wants to jump on it also.
Assignee: nobody → dburns
Assignee: dburns → nobody
I talked a bit with :davidb about this earlier this week.

As implied above, solving this bug properly involves figuring out a good keyboard navigation schema for navigating between pushes, their constituent jobs, and details of the particular jobs. However, adding the role/tabindex stuff to the spans is the first step and is pretty straightforward. I have a patch for that. 

I propose getting that landed now and then we can address the design questions behind making treeherder fully accessible later.
Attachment #8488270 - Flags: review?(jeads)
Attachment #8488270 - Flags: review?(jeads) → review+
Reducing the number of P1 bugs at any one time, so there are a half dozen or so top issues on which efforts can be focused. This issue is incredible important, but there are ingestion/dataloss prevention bugs etc that need to be handled first before we call treeherder ready for non-sheriffs.
Priority: P1 → P2
See bug 654908 for more suggestions.
Keywords: regression
Depends on: 1111084
Priority: P2 → P3
How does Treeherder now compare to TBPL, accessibility wise? Is it a regression, on par, or better? I know we have a long way to go to make it ideal, I'm just wondering in the context of enf-of-lifing TBPL.
Marco, can you give feedback on how usable treeherder is with a screen reader vs. tbpl? I know neither is ideal, but it would be good to know if turning off tbpl is going to seriously impact people who use one (and whether there is any kind of stopgap fix we can make to make things halfway useable)
Flags: needinfo?(mzehe)
(In reply to Ed Morley [:edmorley] from comment #13)
> How does Treeherder now compare to TBPL, accessibility wise? Is it a
> regression, on par, or better? I know we have a long way to go to make it
> ideal, I'm just wondering in the context of enf-of-lifing TBPL.

I'd say its a rgression, while I can use it and get work done there are a few things that are a bit of a pain.

At least for me j/k and other keys that on tbpl just navigate between job links on treeherder seem to also activate find in page.

I'm also not aware of an easy way to get focus into the area that has log parsing and stuff for a job (on tbpl there is a heading for that section).
(In reply to Trevor Saunders (:tbsaunde) from comment #15)
> (In reply to Ed Morley [:edmorley] from comment #13)
> > How does Treeherder now compare to TBPL, accessibility wise? Is it a
> > regression, on par, or better? I know we have a long way to go to make it
> > ideal, I'm just wondering in the context of enf-of-lifing TBPL.
> 
> I'd say its a rgression, while I can use it and get work done there are a
> few things that are a bit of a pain.
> 
> At least for me j/k and other keys that on tbpl just navigate between job
> links on treeherder seem to also activate find in page.

This shouldn't be happening, it certainly doesn't for me. Could this be some kind of interaction between the screen reader and treeherder? I wouldn't think find-in-page should be activated any other way than the built-in firefox shortcut?

> I'm also not aware of an easy way to get focus into the area that has log
> parsing and stuff for a job (on tbpl there is a heading for that section).

Hmm, so inspecting the html it looks like we're using somewhat unsemantic naming for the bottom panel divs (i.e. bottom-left-top, bottom-left-bottom). Would giving the div's better id's (i.e. "job-actions", "job-details") help here? By "heading" in tbpl do you just mean the fact that the log parsing and job status is in something called "<div id='details'>"?
(In reply to William Lachance (:wlach) from comment #16)
> (In reply to Trevor Saunders (:tbsaunde) from comment #15)
> > (In reply to Ed Morley [:edmorley] from comment #13)
> > > How does Treeherder now compare to TBPL, accessibility wise? Is it a
> > > regression, on par, or better? I know we have a long way to go to make it
> > > ideal, I'm just wondering in the context of enf-of-lifing TBPL.
> > 
> > I'd say its a rgression, while I can use it and get work done there are a
> > few things that are a bit of a pain.
> > 
> > At least for me j/k and other keys that on tbpl just navigate between job
> > links on treeherder seem to also activate find in page.
> 
> This shouldn't be happening, it certainly doesn't for me. Could this be some
> kind of interaction between the screen reader and treeherder? I wouldn't
> think find-in-page should be activated any other way than the built-in
> firefox shortcut?

Maybe a difference in the "accessibility.typeaheadfind" pref? If TBPL swallows j and k then presumeably typeaheadfind won't kick in...
I'd say it's a regression, too. There are so many unsemantic elements like each of the build results in a job, the different jobs, the stuff at the top which only sems to be made up of CSS background imagery or some funky unicode symbols with no readable alternative text for the links, etc. Trevor and David also mentioned other issues above already.
Flags: needinfo?(mzehe)
Marco/Trevor/David: Are you using TBPL or Treeherder at the moment? I'm just wondering if this blocks turning TBPL off; obviously we want to improve the Treeherder situation regardless.
Muddling through with Treeherder. It's just a didferent kind of muddling through than with TBPL. So I'm fine either way.
(In reply to William Lachance (:wlach) from comment #16)
> (In reply to Trevor Saunders (:tbsaunde) from comment #15)
> > (In reply to Ed Morley [:edmorley] from comment #13)
> > > How does Treeherder now compare to TBPL, accessibility wise? Is it a
> > > regression, on par, or better? I know we have a long way to go to make it
> > > ideal, I'm just wondering in the context of enf-of-lifing TBPL.
> > 
> > I'd say its a rgression, while I can use it and get work done there are a
> > few things that are a bit of a pain.
> > 
> > At least for me j/k and other keys that on tbpl just navigate between job
> > links on treeherder seem to also activate find in page.
> 
> This shouldn't be happening, it certainly doesn't for me. Could this be some
> kind of interaction between the screen reader and treeherder? I wouldn't
> think find-in-page should be activated any other way than the built-in
> firefox shortcut?

it looks like I do have accessibility.typeaheadfind set to true, so maybe that's at fault.

> > I'm also not aware of an easy way to get focus into the area that has log
> > parsing and stuff for a job (on tbpl there is a heading for that section).
> 
> Hmm, so inspecting the html it looks like we're using somewhat unsemantic
> naming for the bottom panel divs (i.e. bottom-left-top, bottom-left-bottom).
> Would giving the div's better id's (i.e. "job-actions", "job-details") help
> here? By "heading" in tbpl do you just mean the fact that the log parsing
> and job status is in something called "<div id='details'>"?

I don't thing changing ids will effect anything, I was talking about the <job title> <test status> h3 element.
Today's my last day before I'm on PTO, and then there are a couple of UK public holidays - so there is only actually 1 complete working day for me between now and 7th April. However after that I'd like to see what I can do to help here. I really know nothing at all about what makes the difference between a good screen reader experience and a bad one, so I'll have to do a bit of reading up on it which may take a while. If you have any low hanging fruit suggestions (beyond what's mentioned in the last comment or two) then that would give me a head start while I get my noob brain around this all.

Regarding this bug blocking bug 1059400 (which in turn blocks the tbpl-eol metabug), if people have already moved to treeherder, then the switching off of TBPL seems orthogonal to the problem of improving the Treeherder behaviour, so I'll remove the dependency.
No longer blocks: treeherder-dev-transition
Depends on: 1177857
The PR in this bug landed, and the dep marks were fixed.

There's no doubt lots more that can be done, but it would be best to track in separate specific bugs rather than having multiple PRs in one bug. If there are other things we can do please do file bugs and we'll try our best to improve things :-)
Assignee: nobody → wlachance
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: