Skip to content

Accessibility audit fixes for Combobox, DataTable, Expression, Map, and Dropdown #2359

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

kevinparkerson
Copy link
Contributor

@kevinparkerson kevinparkerson commented Oct 5, 2019

Fixes #2358

  • Combobox: Headers/footers need to read properly and most recent item should be immediate previous tab index after selection
  • DataTable: aria-live needs to be removed, checkbox names need to be unique
  • Expression: focus needs to move to first input upon adding new condition or group
  • Map: focus needs to move to map when selecting a location
  • Menu Dropdown: styling needs to be corrected for header text orientation

CONTRIBUTOR checklist (do not remove)

Please complete for every pull request

  • First-time contributors should sign the Contributor License Agreement. It's a fancy way of saying that you are giving away your contribution to this project. If you haven't before, wait a few minutes and a bot will comment on this pull request with instructions.
  • npm run lint:fix has been run and linting passes.
  • Mocha, Jest (Storyshots), and components/component-docs.json CI tests pass (npm test).
  • Tests have been added for new props to prevent regressions in the future. See readme.
  • Review the appropriate Storybook stories. Open http://localhost:9001/.
  • Review tests are passing in the browser. Open http://localhost:8001/.
  • Review markup conforms to SLDS by looking at DOM snapshot strings.

REVIEWER checklist (do not remove)

  • TravisCI tests pass. This includes linting, Mocha, Jest, Storyshots, and components/component-docs.json tests.
  • Tests have been added for new props to prevent regressions in the future. See readme.
  • Review the appropriate Storybook stories. Open http://localhost:9001/.
  • The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
  • Review tests are passing in the browser. Open http://localhost:8001/.
  • Review markup conforms to SLDS by looking at DOM snapshot strings.
Required only if there are markup / UX changes
  • Add year-first date and commit SHA to last-slds-markup-review in package.json and push.
  • Request a review of the deployed Heroku app by the Salesforce UX Accessibility Team.
  • Add year-first review date, and commit SHA, last-accessibility-review, to package.json and push.
  • While the contributor's branch is checked out, run npm run local-update within locally cloned site repo to confirm the site will function correctly at the next release.

- Combobox
- Data Table
- Expression
- Map
- Menu Dropdown
@interactivellama interactivellama changed the title Even more a11y audit fixes Accessibility audit fixes Oct 10, 2019
@interactivellama interactivellama changed the title Accessibility audit fixes Accessibility audit fixes for Combobox, DataTable, Expression, Map, and Dropdown Oct 10, 2019
@interactivellama
Copy link
Contributor

I'm going to go ahead and merge this. Map: focus needs to move to map when selecting a location should be working based on the code, but I'm not hearing the iframe's title read in VoiceOver (for instance).

@@ -472,6 +472,22 @@ class Combobox extends React.Component {
activeSelectedOptionIndex: 0,
});
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great solution!

@interactivellama interactivellama merged commit cd413f4 into salesforce:master Oct 10, 2019
@kevinparkerson
Copy link
Contributor Author

kevinparkerson commented Oct 10, 2019

@interactivellama VoiceOver is behaving really inconsistently; the first time you load the page, tabbing to it will put a box around it and it reads "frame 1, Salesforce Locations In United States, group". Shift tab and then tab back to it, it reads "group, Salesforce Locations In United States, group" with no box around it. Additionally both times there's a lag period where it says "Chrome busy" before it reads or highlights anything. Additionally, the iframe never shows a visual focus indicator without some sort of screen reader being activated. There are two solutions I can see for this:

1.) inject styling that makes the iframe have a highlight when focused like most normal elements do
2.) change the focusable element to the .slds-map div. We'd also need to move the title prop to that element so it'd read correctly. This diverges from SLDS markup a bit though

Let me know what you think, I can try to address this in a separate PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fix accessibility issues from audit for Combobox, DataTable, Expression, Map, and Dropdown
2 participants