Skip to content
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

Update checklist #779

Merged
merged 16 commits into from
May 11, 2019
Merged

Update checklist #779

merged 16 commits into from
May 11, 2019

Conversation

ericwbailey
Copy link
Member

This PR:

  • Removes the form. Checking off checklist items does not create a situation where data will be submitted—if we want a persistent checked state, we should use a more modern solution such as localStorage.
  • Adds some context about why the checklist exists, as well as links to resources to use to test.
  • Most importantly, there is a significant content update to the checklist items, reflecting @svinkle's efforts to better steer people towards AA compliance. Each checklist item now has a pertinent success criterion, description, and links where appropriate. The checklist sections have been expanded, as well.

This PR won't interfere with redesign efforts, as the checklist's place in the site's information architecture won't be moving.

I know it's a good amount of content to review, but I'd personally love it if we could get this updated by Global Accessibility Awareness Day (May 16th). I also know some people have been having difficulty building the site, so here's a screenshot.

Also tapping @nas5w and @sebacicltd, for concerns expressed in #736.

@ericwbailey ericwbailey added enhancement Cosmetic and/or usability improvements to the project. checklist Updates for the web accessibility checklist labels Apr 28, 2019
Copy link
Member

@scottaohara scottaohara left a comment

Choose a reason for hiding this comment

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

part 1, including offline comments about scope of content prior to the checklist.

checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
@svinkle
Copy link
Member

svinkle commented Apr 28, 2019

Looks great, @ericwbailey! The extra content pieces at the top are a fantastic addition.

Curious if we should add some checkbox elements, to add that "checklist" feel? Otherwise, perhaps we should call it something else?

@scottaohara
Copy link
Member

thoughts on marking these up as a standard lists, but using details / summary (or ARIA disclosures) to show/hide the content?

I ask for a couple reasons:

  • there’s a lot of additional content here now, which is good, but it doesn’t make for quick lists to review.
  • screen readers / browsers are inconsistent with the way they expose and let people navigate dls and such, that while semantically i’m 100% on board with using these elements, practically i’ve yet to receive positive feedback from people who use screen readers, when implementing these elements.

re: the above two points, if checkboxes are used somehow, i'd expect they be in a visual manner. It would be odd to have checkboxes and controls to show/hide.

If we don't go with the disclosure widget route and do re-introduce checkboxes, let's just keep it simple. There's no reason to reintroduce the fieldsets and the wrapping form element from the previous version. This is an informative page, not actionable after all.

@svinkle
Copy link
Member

svinkle commented Apr 28, 2019

+1 native disclosure. Would save a ton of space and would help the content be less overwhelming which is sort of the point.

@ericwbailey
Copy link
Member Author

No problems here going with a native disclosure. I'll get on that soon.

@ericwbailey
Copy link
Member Author

Pushed up a new version with copy edits and a treatment using details. Here's a screencap:

Screenshot of the keyboard section, showing the collapsed and expanded states for each item.

@JonathanDHolden
Copy link

JonathanDHolden commented Apr 29, 2019 via email

@JonathanDHolden
Copy link

JonathanDHolden commented Apr 29, 2019 via email

@scottaohara
Copy link
Member

I like this idea, though I wonder how might be the best way to surface this, as many checklist items should be everyone's responsibility, to some degree.

@JonathanDHolden
Copy link

JonathanDHolden commented Apr 29, 2019 via email

@scottaohara
Copy link
Member

@sebacicltd as stated "to some degree". Per even your examples:

skip link requires a design and expected behavior (does it remain positioned, or does it become static? how does this surface on small screens where iOS doesn't reveal visually hidden skip links on focus. developers then need to implement appropriately).

colo(u)r contrast is initially a designers responsibility to provide, but dev and or QA should be empowered to verify implementing. Especially if using a component library where individual elements may be fine in isolation, but issues may become apparent in implementation.

Images being uploaded to a CMS may not be by the person who is in charge of how they'd be used. e.g. interns doing the grunt work of optimizing for web and getting content uploaded may have no background in providing appropriate alt text. Is the image used in one instance as decorative and another as informative? Who makes that call and who can be on call to check so as to not have a single point of failure.

@ericwbailey
Copy link
Member Author

I'll get a Google doc with the content soon, @sebacicltd. Appreciate you taking a look.

Point of order: while we're discussing the responsibility topic, do we agree that it's not a blocker for merging the updated checklist content? I think we can start a new issue if and when this is merged, then potentially add in content from there.

@JonathanDHolden
Copy link

JonathanDHolden commented Apr 29, 2019 via email

@ericwbailey
Copy link
Member Author

Great. Here's that content doc I promised, it's currently set to read and suggest mode.

@ericwbailey
Copy link
Member Author

I'm still working through the doc, but these are some great edits so far. Thank you for doing them, @sebacicltd.

@JonathanDHolden
Copy link

JonathanDHolden commented Apr 30, 2019 via email

* gh-pages:
  Added how-to enable keyboard navigation in Chrome (#782)
  Add more detail to the maximum-scale piece (#751)
  Event updates (#781)
@ericwbailey
Copy link
Member Author

Just pushed up changes reflecting @sebacicltd's work.

checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated
</p>
<h3 id="does-this-checklist-guarantee-my-site-is-accessible">Does this checklist guarantee my site is accessible?</h3>
<p>
No. However, working through this checklist will help greatly improve the experience for everyone who uses your site. The issues it prompts you to check for covers a wide range of disability conditions.
No. However, using this checklist will help improve the experience for everyone who uses your site. The issues it prompts you to check for covers a wide range of disability conditions.
Copy link
Member

Choose a reason for hiding this comment

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

again success criterion or issues?

checklist.html Outdated Show resolved Hide resolved
checklist.html Show resolved Hide resolved
checklist.html Outdated
<details id="section-headings-01">
<summary>
Use headings elements to describe headings.
Use heading elements to describe headings.
Copy link
Member

Choose a reason for hiding this comment

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

Use heading elements to introduce content

checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
@ericwbailey
Copy link
Member Author

Unless there's any more feedback, I will merge this on Saturday to provide some time for people to review it on the live site before we announce it on Wednesday.

checklist.html Outdated
<a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/content-structure-separation-programmatic.html">1.3.1 Info and Relationships</a>
</p>
<p class="checklist-description">
This prevents a Internet Explorer from allowing focus to navigate through the child elements of an SVG that is meant to be decorative.
Copy link
Member

Choose a reason for hiding this comment

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

This prevents a Internet Explorer

checklist.html Outdated
<a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/keyboard-operation-trapping.html">2.1.2 No Keyboard Trap</a>
</p>
<p class="checklist-description">
This solves a bug in Safari which interferes with VoiceOver describing <code>svg</code> images that contain the <code>use</code> element.
Copy link
Member

Choose a reason for hiding this comment

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

interferes with VoiceOver describing svg can sometimes create hidden tab-stops when navigating

checklist.html Outdated
<a href="https://www.w3.org/WAI/WCAG21/Understanding/identify-input-purpose.html">1.3.5 Identify Input Purpose</a>
</p>
<p class="checklist-description">
<a href="https://www.w3.org/TR/html52/sec-forms.html#sec-autofill">Providing a mechanism</a> to help people more quickly, easily, and accurately fill in form fields that ask for common information (for example, name, address, phone number). Ensure that form input errors are displayed in a list above the form after the form is submit
Copy link
Member

Choose a reason for hiding this comment

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

Ensure that form input errors are displayed in a list above the form after the form is submit ted.

@svinkle
Copy link
Member

svinkle commented May 10, 2019

Two points I feel like are missing from the old list:

  • Ensure links have a :focus state.
  • Ensure links are recognizable (underlined).

We could expand these to include :active state for visual confirmation (2.1.1 Keyboard), and to mention, at the very least, include underlines for link within body copy (1.4.1 Use of Color).

@ericwbailey
Copy link
Member Author

Thanks @svinkle. I've added them to the Controls section, starting here: https://github.com/a11yproject/a11yproject.com/pull/779/files#diff-f716bc61caf8adb552960a60746bd411R478

checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
<a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/content-structure-separation-programmatic.html">1.3.1 Info and Relationships</a>
</p>
<p class="checklist-description">
Terms like "click here" and "read more" do not provide any context. Some people navigate using a list of all buttons or links on a page or view. When using this mode, the terms indicate what will happen if navigated to or activated.
Copy link
Member

Choose a reason for hiding this comment

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

consider:

Terms like "click here" and "read more" do not provide adequate context for what they will do. Some people navigate using a listing of all buttons or links on a page or view. When navigating in this way, its more helpful if these elements indicate what will happen if they're interacted with. e.g. "Learn more about accessibility" rather than just "Learn more".

Copy link
Member Author

Choose a reason for hiding this comment

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

I like this, but I'd also like to update it to include the cognitive angle, in that it's less ambiguous to all people, regardless of browsing mode.

Copy link
Member

Choose a reason for hiding this comment

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

do it to it

checklist.html Outdated
</summary>
<div class="checklist-details">
<p class="checklist-criterion">
<a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/consistent-behavior-unpredictable-change.html">3.2.2 On Input</a>
Copy link
Member

Choose a reason for hiding this comment

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

Not doing this would not actually fail this SC. more of an advisory technique / best practice, which is actually indicated in the understanding link, which then links to: https://www.w3.org/TR/2016/NOTE-WCAG20-TECHS-20161007/G201

Copy link
Member Author

Choose a reason for hiding this comment

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

Is there another SC it would fail?

Copy link
Member

Choose a reason for hiding this comment

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

i don't think so. More of a best practice. Especially regarding external links.

Copy link
Member Author

Choose a reason for hiding this comment

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

So I think our options here are to:

  1. Leave it be and have the SC be a little bit of a white lie, because it is an important thing to think about.
  2. Remove it, as it's not technically a failure, which is not in keeping with our other checklist items.
  3. Add a note to the end about what you mentioned, which I think kind of is like the second option.

I'm personally leaning towards removal. I want this checklist to be airtight.

Copy link
Member

Choose a reason for hiding this comment

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

I think this could stay in if you remove mentioning external links. Opening in a new window you could link over to http://www.w3.org/TR/WCAG20-TECHS/G201.html as a reasoning/ technique

Copy link
Member Author

Choose a reason for hiding this comment

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

Done.

<div class="checklist">
<details id="section-tables-01">
<summary>
Use the <code>table</code> element to describe tabular data.
Copy link
Member

Choose a reason for hiding this comment

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

Use the table element to markup tabular data.

checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated Show resolved Hide resolved
checklist.html Outdated
<a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/keyboard-operation-keyboard-operable.html">2.1.1 Keyboard</a>
</p>
<p class="checklist-description">
Provide a global pause function on any media control. If the device has a keyboard, ensure that pressing the <kbd>Space</kbd> key can pause playback.
Copy link
Member

Choose a reason for hiding this comment

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

Provide a global pause function on any media element that can be played.

we need to be careful with:

ensure that pressing the Space key can pause playback.

Since space key should allow for the viewport to scroll, when not focusing a form control of some type, we don't want to make people think it's always ok to overwrite this functionality and disallow its inherent behavior.

typically the space key should allow for a "global pause" only when keyboard focus is within the context of a larger media grouping, and where space shouldn't also be expected to activate other interactive elements which are focused.

Copy link
Member Author

Choose a reason for hiding this comment

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

Would a followup sentence along the lines of, "Make sure you also don't interfere with the Space key's ability to scroll the page/view when not focusing on a form control." work for you?

Copy link
Member

Choose a reason for hiding this comment

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

mmm. maybe. I think using the term "global" is still misleading though. The Space key should really only work in the context of the media group.

Copy link
Member Author

Choose a reason for hiding this comment

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

Let's remove the reference to a global function, then:

Provide the ability to pause any media control. If the device has a keyboard, ensure that pressing the Space key can pause playback. Make sure you also don't interfere with the Space key's ability to scroll the page/view when not focusing on a form control.

Sound good?

Copy link
Member

Choose a reason for hiding this comment

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

a lot better. The only thing that is stands out to me now is calling it a "media control". Swap out "control" with "element" and i think this is good to go.

@ericwbailey ericwbailey merged commit 5ed5f32 into gh-pages May 11, 2019
@ericwbailey ericwbailey deleted the updated-checklist branch May 11, 2019 16:42
@ericwbailey
Copy link
Member Author

Merged. If there's further feedback let's address it on an Issue by Issue basis.

@svinkle
Copy link
Member

svinkle commented May 11, 2019

Awesome work @ericwbailey and @scottaohara! 👏

I feel like we'll be able to improve upon this over time in a variety of ways. Perhaps by providing "further reading" links for more info and code snippets within the details content sections.

For example, to help with the Viewport list item, we could show what to do and what not do to:

🛑 Don't do this:

<meta name="viewport" content="initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">

✅ Do this:

<meta name="viewport" content="width=device-width, initial-scale=1">

The content that we have now is great, but doesn't really explain what exactly to look for or how to solve the issue. I'm just thinking if someone new to all of this reads the list, it may lead to more questions.

@scottaohara
Copy link
Member

I think that's a good idea for some of these that lend themselves to simple code dos/don'ts.

Was also just thinking this might provide us a bit of a road map on additional informative posts to add to the site as well.

@ericwbailey ericwbailey mentioned this pull request May 11, 2019
4 tasks
@ericwbailey
Copy link
Member Author

I love those ideas! And thank you for the great new checklist content, @svinkle! We couldn't have done it without you 😀

I started an issue to capture/discuss it: #788

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
checklist Updates for the web accessibility checklist enhancement Cosmetic and/or usability improvements to the project.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants