Closed Bug 1764137 Opened 4 years ago Closed 3 years ago

Use correct aria-role for the synced-tabs setup flow

Categories

(Toolkit :: UI Widgets, defect, P2)

defect
Points:
2

Tracking

()

RESOLVED FIXED
106 Branch
Accessibility Severity s3
Tracking Status
firefox106 --- fixed

People

(Reporter: sfoster, Assigned: sclements)

References

Details

(Keywords: access, Whiteboard: [fidefe-2022-mr1-myfirefox] )

Attachments

(2 files)

We're currently using the NamedDeck for this sequence of steps. But as this is currently used exclusively for tabbed panels it hard-codes a role of "tabpanel" and a linked button, which isn't applicable in this case.

One solution would be to make NamedDeck a more generic base class and create a more tab-ish element for those tab cases.

Severity: -- → S3
Priority: -- → P3

The Bugbug bot thinks this bug should belong to the 'Core::Disability Access APIs' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: General → Disability Access APIs
Product: Firefox → Core

The product::component has been changed since the backlog priority was decided, so we're resetting it.
For more information, please visit auto_nag documentation.

Priority: P3 → --

Moving back to Firefox: General, as this is not an issue with the APIs themselves.

Component: Disability Access APIs → General
Keywords: access
Product: Core → Firefox
Whiteboard: [access-s3]
Whiteboard: [access-s3] → [fidefe-2022-mr1-myfirefox] [access-s3]

(In reply to Sam Foster [:sfoster] (he/him) from comment #0)

One solution would be to make NamedDeck a more generic base class and create a more tab-ish element for those tab cases.

Moving this to XUL widget, I think those are the next steps.

Component: General → XUL Widgets
Product: Firefox → Toolkit
Assignee: nobody → sclements
Status: NEW → ASSIGNED

Morgan, I could use advice on what the most appropriate aria role for the sync tabs setup flow should be (see first three steps in the figma [here])(https://www.figma.com/file/SE4xHgOW84yLiv7vFugm9R/Firefox-View-Stepping-Stone?node-id=1954%3A27936). Would role=dialog make sense?

Flags: needinfo?(mreschenberg)

I'm gonna toss this over to our a11y front-end engineer who just got back from leave -- Anna, what do you think?

Flags: needinfo?(mreschenberg) → needinfo?(ayeddi)

Regarding a potential solution to making the NamedDeck component more reusable, a quick fix would be to add this condition here, which is what the NamedDeckButton component does (in the same file). And then we'd pass whatever role UX deems appropriate into the named-deck element in firefoxview.html.

      if (!this.hasAttribute("role")) {
        view.setAttribute("aria-labelledby", `${this.id}-button-${name}`);
        view.setAttribute("role", "tabpanel");
      }
Assignee: sclements → nobody
Status: ASSIGNED → NEW
Points: --- → 5

(In reply to Sarah Clements [:sclements] from comment #5)

Morgan, I could use advice on what the most appropriate aria role for the sync tabs setup flow should be (see first three steps in the figma [here])(https://www.figma.com/file/SE4xHgOW84yLiv7vFugm9R/Firefox-View-Stepping-Stone?node-id=1954%3A27936). Would role=dialog make sense?

Hi Sarah,

I think the tabs setup/sync flow does not need a role of dialog, because this flow is embedded in the page and does not require any specific navigation for a user.

The Fx Checklist component could be role="region" for some encapsulation, but the most important part would be to mark the Progress Bar component as such by either HTML5 <progress> element/WAI example or ARIA role="progressbar"/on MDN.*

I hope that helps, but let me know if I can provide any further information.

*updated to add examples

Flags: needinfo?(ayeddi)

(In reply to Anna Yeddi [:ayeddi] from comment #8)

(In reply to Sarah Clements [:sclements] from comment #5)

Morgan, I could use advice on what the most appropriate aria role for the sync tabs setup flow should be (see first three steps in the figma [here])(https://www.figma.com/file/SE4xHgOW84yLiv7vFugm9R/Firefox-View-Stepping-Stone?node-id=1954%3A27936). Would role=dialog make sense?

Hi Sarah,

I think the tabs setup/sync flow does not need a role of dialog, because this flow is embedded in the page and does not require any specific navigation for a user.

to confirm I'm understanding you correctly - the set up flow containers (steps 1 - 3 in figma "mobile tabs in progress") don't need a role whatsoever, only certain elements do such as the progress bar element you mentioned?

The Fx Checklist component could be role="region" for some encapsulation, but the most important part would be to mark the Progress Bar component as such by either HTML5 <progress> element/WAI example or ARIA role="progressbar"/on MDN.*

I'm not certain I understand what is meant by the checklist component. When I click on that figma link I see the "mobile tabs in progress step 2" with the "Sync Firefox on your phone or tablet" under Tab Pickup section.... are you referring to that whole component?

(In reply to Sarah Clements [:sclements] from comment #9)

(In reply to Anna Yeddi [:ayeddi] from comment #8)

(In reply to Sarah Clements [:sclements] from comment #5)

Morgan, I could use advice on what the most appropriate aria role for the sync tabs setup flow should be (see first three steps in the figma [here])(https://www.figma.com/file/SE4xHgOW84yLiv7vFugm9R/Firefox-View-Stepping-Stone?node-id=1954%3A27936). Would role=dialog make sense?

Hi Sarah,

I think the tabs setup/sync flow does not need a role of dialog, because this flow is embedded in the page and does not require any specific navigation for a user.

to confirm I'm understanding you correctly - the set up flow containers (steps 1 - 3 in figma "mobile tabs in progress") don't need a role whatsoever, only certain elements do such as the progress bar element you mentioned?

Correct, because the containers are placed within another content that remains available for users during the process (the dialog would work more like an overlay or like on the about:welcome page it would take over the entire page instead, plus the welcome page allows).

The Fx Checklist component could be role="region" for some encapsulation, but the most important part would be to mark the Progress Bar component as such by either HTML5 <progress> element/WAI example or ARIA role="progressbar"/on MDN.*

I'm not certain I understand what is meant by the checklist component. When I click on that figma link I see the "mobile tabs in progress step 2" with the "Sync Firefox on your phone or tablet" under Tab Pickup section.... are you referring to that whole component?

This is the component I was also referring to. For me the entire Figma page/node would open with all 3 steps of the flow, so I dug into the component level and used the component's name from the file to refer to it. The screenshot of that specific component that is Fx Checklist in Figma is attached. This is the section of the Firefox View that we are talking about, right? The rest of the page does not change within this Figma node/page.

While the stepper from the about:welcome page could be somehow reused in the Fx View, I think the progressbar does describe the component much better and would correspond better with it visual appearance and the %% completed pattern used. This should not affect consistency of components within the Firefox for that same reason - the components appear visually different and do function differently as well.

I hope this helps.

Ray, can you give this a priority please?

The progress bars in the mobile setup flow (see screenshot in the comment above) are already using the correct semantic elements per comment 8, so the only thing to do here is to remove the role=tabpanel from the setup flow containers since this is incorrect and might be confusing for screen reader users.

Note to self: We might still want to give this a role=region so it matches what the Tab Pickup list has.

Flags: needinfo?(rfambro)
Assignee: nobody → sclements
Status: NEW → ASSIGNED
Flags: needinfo?(rfambro)
Priority: -- → P2
Points: 5 → 2
Pushed by sclements@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/33a3e6eafcdb Add correct aria-roles to named-deck in firefoxview r=Gijs
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 106 Branch
Accessibility Severity: --- → s3
Whiteboard: [fidefe-2022-mr1-myfirefox] [access-s3] → [fidefe-2022-mr1-myfirefox]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: