revelrylabs / harmonium

An opinionated React component framework for teams that move fast.
https://harmonium.revelry.co
MIT License
35 stars 47 forks source link

As revelry, I want to make updates to certain components in order to follow WCAG Standards. #188

Open blazebarsamian opened 6 years ago

blazebarsamian commented 6 years ago

In order to follow WCAG standards, we need to make a few updates to our components to provide a more accessible experience.

See education ticket that covers the standards.

Heres a list of where these updates need to happen:

Language:

Inputs:

Nav:

Menu:

Links styled as buttons:

Flash message, Tooltips, Modals, dropdowns, CloseButton:

Images:

Buttons:

Expanding columns:


Lintomat checks to add:

NEW Rules to add to lintomat after March 30th:

blazebarsamian commented 6 years ago

Other Notes:

WAI-Aria Practices:

Buttons


Untrapping Keyboard users:

Links:

On Focus:

On Input:

Form Errors:

Form Labels:

Name, Role, Value:

brittanygay commented 6 years ago

@blazebarsamian @CheetoMao I'm assigning myself to help out with some of the checklist since I have some spare time this week!

blazebarsamian commented 6 years ago

yes please @brittanygay!! Im supposed to start working on these updates this week. I feel like I'm missing more of the name, value, role examples that we need to include but I haven't found examples.

I was about to start looking into how to add props to our input components to add name, role, ect.

blazebarsamian commented 6 years ago

I've been messing with some form elements and using voice over to read off the page and test.

When I inspect the elements, the name and role attributes are there but are not being read. Looking into this more now.

blazebarsamian commented 6 years ago

From what I understandl the purpose of name, role and value is just for the software to understand what the custom controls are so the screen reader is not confused with a div or span.

https://accessibility.huit.harvard.edu/provide-name-role-and-value-information

I checked our checkboxes using the wave accessibility tester and they pass even though the voice over doesnt verbally read out the names of the checkboxes.

screen shot 2018-04-10 at 3 51 18 pm

blazebarsamian commented 6 years ago

Update: I'm going to move this back to icebox until I can get back to work on it (It looks like ill have some time this week).

I need to get someone to pair with me for the esc-to-dismiss functionality for modals. I've tried to figure it out myself but I think I'm missing something.

revelry-stalebot[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

bryanjos commented 5 years ago

Inputs should have a name="" attribute

In most cases this is fine. There will be cases when this is not a good idea to do. Having a name attribute for an input in a form means the value will be sent to the server when submitted. For things like credit cards, crypto secrets, and personal id numbers, we may not want to send them to the server.

That's the only caveat. Just wanted to make sure to say it out loud.

revelry-stalebot[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.