Table of Contents
- Learning About ADA
- DQM Specific Resources
- Things a Builder Should Do for ADA
- Testing ADA
- Web Solutions Stances on Specific Items
All sites need to be accessible for all users and also meet compliance.
Learning About ADA
- WCAG 2.1
- The Accessibility Project - Reference on making websites accessible
- Mozilla’s Guide to Aria Roles - Learn about ARIA roles
DQM Specific Resources
- DQM Tips and Tricks Meeting - held on May 6, 2022 by Laura Reece - Be sure to read footnote 1
- Transcript of DQM Tips and Tricks Meeting - Be sure to read footnote 1
- DQM Checkpoint Library
- DQM System Status
Things a Builder Should Do for ADA
- Modals (and other hidden items that toggle to display) should have aria-hidden by default, and toggle upon display
- Labels should include the
for=“”attribute that matches theid=“”of the corresponding input - Add roles
- navigation role=“navigation” ex role# “navigation”, role# “main”, etc.
- main div role=“main”
- Add alt tags to images
- Checklist
Testing ADA
- SortSite
- DQM (Digital Quality Management) - Crownpeak
- WAVE Web Accessibility - Testing Accessibility
- Test screen reader - VoiceOver on mac
SortSite Scan Options
Use the following settings when scanning a site with SortSite.
When sending an RTF or document file of the scan results back to the Project Coordinator for a site, please delete all sections except for the “Accessibility” section from the file. This helps prevent confusion on the client’s part when the scan is provided to them.
Checkpoints
- Errors
- Check
Errors and Broken LinksandDon't Check page weight
- Check
- Accessibility
- Check all items
- Set WCAG to
WCAG 2.1 AA - At Compatibility:
Check screen reader report - Reading Age:
Advanced
- Compatibility
- Check
Compatibilitybox and all under it except forInternet Explorer
- Check
- Search
- Check
Searchbox, but ONLY checkRobots.txt Guidelinesbox - Leave keywords box empty
- Check
- Standards
- Check
Standards,Validate HTML 5, andCheck for deprecated featuresboxes
- Check
- Usability
- Check
Usabilitybox
- Check
Blocks
- Blocked Links box, add this:
https://banno.com/* https://uat.banno.com/* - Uncheck
Obey robots.txt
If you need to avoid scanning the Assets because of a huge PDF/file issue, add this:
https://[domain]/assets/files/*
Links
- JavaScript DOM Changes:
All - Link Following
- Only select
Check all links to external sites
- Only select
- Report - These can vary between people or projects.
- Maximum pages shown for each issue:
200
If you hit this limit, you know you have a site-wide issue, and you’ll have to run the report again after you’ve cleared it site-wide issue to see if anything else is hitting the checkpoint. - Maximum line numbers shown for each issue:
100
The only thing that usually gets close to this limit is contrast issues.
- Maximum pages shown for each issue:
Advanced
- Timeouts
- Server Load: 0.1 secs delay per page
- Page Timeout: 00:20 seconds
- Exploration
- Explore entire site
- User Agent
- Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15
Web Solutions Stances on Specific Items
Bootstrap 4 “Focus” State
Question
Are the default focus states from Bootstrap 4 sufficient for ADA compliance despite Sortsite’s complaints?
Answer
Yes. However, DQM will flag it as a possible issue. We will be working with DQM to see if they can add the box shadow criteria to this automated check.
Relevant Information for Teams
Project Coordinators
Be able to explain these as false positives to the client upon sending Sortsite reports to clients.
Designers
N/A
Developers
Outline: 0; or Outline: none; will appear on reports as being a problem. Do not spend time “clearing” the report. This is not an issue for ADA, but rather a bug in Sortsite and how it is evaluating. The rule is that you must be able to visibly determine what has focus, and there are ways to do that other than with outline.
Note: The color of the outline/box-shadow needs to me a minimum 3:1 contrast ratio with the background color, so the browser’s default color may not be sufficient. Just FYI.
Landmarks
Question
Does everything need to be in a landmark?
Answer
Yes.
Relevant Information for Teams
Project Coordinators
When placing the <noscript><img alt=”“ …/></noscript> piece of the FB Pixel code in the Page Properties footer section, this may show up as “outside” of a landmark in some automated scanners (like SiteImprove). This is a moot issue, because users/screen readers aren’t meant to see this code anyway. It’s meant for Facebook to pick it up, not anyone else. If the client can’t accept that and NEEDS this fixed, the entire <noscript>…</noscript> must be put inside a <div role=“region” aria-label=“Scripts”> </div>
Designers
N/A
Developers
Only one header, footer, and role=“main” can be used on a page. The header and footer CANNOT be inside role=“main”. Articles and asides and modals (role=“dialog”) can be inside role=“main”. If content needs to be outside of the header, main, or footer for whatever reason (i.e. compliance, alert, sliders, modals), use role=“region” or
Tab Index
Question
What tabindex is appropriate?
Answer
Some items naturally have a tab order: links, anchors, buttons, inputs. However, divs and spans do not naturally receive a position in tab order. By default, items that naturally have a tab order, have a tabindex=“0”.
Tabindex=”-1“ will allow something to receive screen focus without adding it into the tab order. For instance,<div role=“main”>would not naturally be able to be skipped to, since it is awhich doesn’t naturally have a tab order. However, it is common to want to skip down to the “main” part of the website. Assigning a tabindex=”-1“ will make skipping to this landmark possible. The next focused item will be the next naturally tab ordered element (that inherits or has an explicit tabindex=“0”) within the code of the main landmark.Relevant Information for Teams
Project Coordinators
N/A
Designers
N/A
Developers
0 and -1 are the only two valid ADA tabindexes that should be used. tabindex=“0” means you can use the tab button to select it at any time. Buttons, links, etc. all have this built in automatically, so they should not need a tabindex=“0”. Things like divs do not have tab-ability built in by default, so you can put tabindex=“0” on it to allow tab-ability. tabindex=”-1“ is used when you need to have something be focusable that isn’t normally, but you don’t necessarily need to be able to click on it. For example, when a modal is focused, you bring the focus down to the modal with tabindex=”-1“, to allow it to be accessible, even though you don’t need to actually click on the modal itself. Then when you press tab, you can work through the tab-able items inside of the modal. (When opening a modal like this, make sure upon closing it that the screen focus returns to the element that opened it.)
Use of Parallax and Navigating Up and Down the Site
Question
Does the use of Parallax cause ADA issues?
Answer
It can. You will want to make sure it does interfer with tabbing up and down through the site.
Relevant Information for Teams
Project Coordinators
When reviewing a site, if you lose sight of your cursor at any point, when tabbing, the developer will need to fix it.
Designers
N/A
Developers
Use tabbing as a check to make sure everything is working properly. As long as you can tab up and down and never lose site of the cursor, all is good.
Actionable Icons (i.e. Search Areas)
Question
Is an icon (such as a magnifying glass) acceptable as a collapse/modal toggle or submit button?
Answer
This only comes up on third-party and manual scans. However, we thought that adding a title attribute would fall under “do the right thing.” Even though it won’t fix the manual issue that comes up, it would be closer to being accessible for users. Chris tested it and it took less than 5 seconds to do. So we will start doing this on all new builds.
Relevant Information for Teams
Project Coordinators
N/A
Designers
N/A
Developers
Start adding this to all your new builds.
Alert Bar Placement
Question
Does the alert need to span the entire width of the design?
Answer
No. There are no visual requirements for alert placement or width/spanning.
Relevant Information for Teams
Project Coordinators
N/A
Designers
Carry on as usual
Developers
The order of the code needs match the visual order of the design. For example, if the alert is not present at the top left of the hero, the code for the alert needs to be placed after the hero code.
Hero Control Dots
Question
Must Hero Dots be placed in a specific area in order for them to be compliant?
Answer
Dots can technically be designed to be placed anywhere within the hero.
Relevant Information for Teams
Project Coordinators
N/A
Designers
Dots are naturally coded to come after the slider code, and therefore, designs should typically reflect placement of dots at the bottom of the hero. However, dots CAN be placed anywhere, so designers just must be aware that placing dots anywhere other than the bottom will result in more setup and coding for the developer in regards things that must be done for ADA. Dots can be any shape/size, but arrows alone are not acceptable.
Developers
Dots code needs to match the order that they visually appear. (I.e. if dots appear at the top of the hero, the code for the dots needs to be appended to the beginning/before the hero, rather than the natural state of after the hero slides)
Hero Pause/Play Buttons
Question
Do Hero Sliders require a pause/play buttons in order to be compliant?
Answer
If the slider autoplays, then technically, yes, it does need the play and pause buttons to be compliant.
Relevant Information for Teams
Project Coordinators
If a client requests an autoplay slider, let the designer know so they can add this into their design files.
Designers
Talk to the client to determine if they will want autoplay on or off. If they choose on, include this/these buttons in your design files.
Developers
If you do not see a pause/play button in the design files, turn off automatic start on slider by default. If you do see a pause/play button in the design files, you will need to build it out and turn autoplay to on. Use this to help get it implemented: https://snippets.cacher.io/snippet/28c39bcb20899b9c1b5b
Hero Dots
Question
Do Hero Sliders require dots?
Answer
Required, no. Suggested, yes.
Relevant Information for Teams
Project Coordinators
N/A
Designers
The preferred solution is to include dots in design whenever possible.
Developers
If the design does not include dots, we should still code the slider to have dots and set the opacity to 0, and upon focus make the opacity 1. (The same way that the compliance.mustache links are show-only-on-focus.)
“Hidden” Descriptive Paragraphs on How to Operate Slider
Question
Is a descriptive paragraph (about how to operate a slider) required to be ADA compliant?
Answer
This is not an issue that is being flagged by Sortsite or DQM and is only coming up on manual, third-party scans. However, there is minimal effort required on our end to put this on every site, so we will start doing that.
Relevant Information for Teams
Project Coordinators
N/A
Designers
N/A
Developers
It will be a .sr-only element that will come before the carousel. Optionally, a shows-only-on-focus skip link could come after this description in order to jump past the slider. The description should include how many slides are in the slider, the methods that will operate the slider, and whether the information/links in the slider can be found elsewhere on the page or within the site.
Overuse of Uppercase/All Caps
Question
Is it a bad practice to have multiple words be uppercase?
Answer
Generally speaking, you would not want to have more than 3 consective words be uppercase. Howevever, there may be legitimate times that this is done. In those cases, it is best to have a style created for the text.
Relevant Information for Teams
Project Coordinators
Advise clients to keep the use of uppercase text to 3 or less consective words. If that is not possible, work with the developer to create a style for the client to use.
Designers
Advise clients to keep the use of uppercase text to 3 or less consective words. If that is not possible, work with the developer to create a style for the client to use.
Developers
Use a CSS style for anything that will need to be uppercase and have more than 3 words.
H1 Placement
Question
Can any content come before an H1?
Answer
Not inside of the role=“main” section. An H1 must be the first thing inside of a role=“main” section.
Relevant Information for Teams
Project Coordinators
N/A
Designers
Try to keep H1s as the first thing on the page, if possible–but not required, as dev can work around it.
Developers
If content, such as a banner with text, visually comes before the H1 in the design, the hero will need to be outside of the role=“main” and inside a general landmark (a section/role=“region with an aria-label) so that the H1 CAN be the first thing in the role=“main”. (This is not a great solution; as a side effect of this hero placement, the hero will not be able to contain ANY headings since they would be out of order compared to the page’s H1. Build hero text with styles in this situation.)
Classes Using “heading”
Question
DQM used to flag any class name that had the word heading in it. But now it does not. Did something change?
Answer
Yes, even though there is a legitimate ADA reason that DQM was looking for this, we asked DQM to hide this issue so we don’t have to deal with it in the future. (DQM was finding the accordion titles, which were always false positives.) It’ll only ever be a manual review issue otherwise, dealt with on a case-by-case basis.
Relevant Information for Teams
Project Coordinators
N/A
Designers
N/A
Developers
N/A
Dropdowns with Flyouts
Question
Is a visual indicator required for menus and dropdowns with flyouts?
Answer
This only comes up on third-party and manual scans. As of now, we will not be adjusting our standards to address these questions as they do not show up on Sortsite or DQM.
Relevant Information for Teams
Project Coordinators
N/A
Designers
If this is requested as a part of a third party ADA case, a visual indicator will need to be added through the design.
Developers
If this is mentioned as unacceptable to a third party, we will address it with their preferred solution as a billable item.
Links Needing Underlines
Question
Do all links need to have underlines?
Answer
It depends. When a link is in a
Relevant Information for Teams
Project Coordinators
Advise clients on making sure links are handled properly given the above information.
Designers
Links in subad areas will need some additional design (either look like a button or the addition of a carrot). If there is no way to add anything visually, talk to the developer about making it be coded in a
Developers
Make sure any links stand out from the content around it by using underline,
Button Hovers
Question
Is there an additional requirement other than color change required for buttons in hover state? This also includes links styled as buttons.
Answer
No. The button style itself is enough visual difference so as to not confuse it with regular content. However, Designers will be implementing a new internal standard that something else other than color WILL change on hover.
Relevant Information for Teams
Project Coordinators
N/A
Designers
Color ratios must still be met, but no other visual requirement (such as bolding, underline, shifting, or growing) is required. UPDATE: As an internal standard, we will be designing something other than color for hover states. However, regular links, not styled as buttons and not in a
Developers
For links that are styled as buttons, they can look exactly the same as a
<button>with no need for differentiation.
If it goes somewhere new, it needs to be a role=“link”, even if it is styled like a button. This includes going to an external link, another page on the site, a named anchor (e.g. a modal or link that goes to href=”#olb“), etc.
If it performs an action but doesn’t go anywhere (e.g. opening a faux modal search or login with href=”#“, or opening/closing an accordion), you will need to add role=“button” or just set it up as a<button>. You will also need aria-expanded or aria-selected or aria-current–basically, just any aria attribute to help screen readers determine what is happening.Button Verbiage
Question
What is the level of specificity button verbiage needs to be compliant?
Answer
This isn’t a super clear cut answer. However, as guidelines (will be flagged in DQM), “Submit” is too vague for submitting a form. Alternatively, “Submit This Form” is just barely descriptive enough. Ideally, it should be “Submit this Personal Loan Application”. Although, buttons such as “Search” and “Locate” are descriptive enough.
Note: If a page has more than one kind of search, e.g. site search vs. location search, “Search” would not be descriptive enough for either button to know what you’re searching for, so in that case it should be more specific on at least one of the two buttons: “Search for Nearby Locations” (or change to something else entirely, like “Begin Location Search”). However, we have figured out that the button CAN just be a generic “Submit” as long as there is more descriptive text added as hidden text.Relevant Information for Teams
Project Coordinators
Just be aware so as to properly advise clients when they create their own buttons or have suggestions during design.
Designers
Just be aware so as to properly advise clients when they create their own buttons or have suggestions during design.
Developers
Be sure hard-coded buttons have enough specificity with a combination of visible and hidden text.
Close Buttons
Question
Do modals, pop-ups, and alerts require close buttons (including things such as searches)?
Answer
If content is being covered up (as is the case with modals 100% of the time), then there needs to be a close button. However, if content is not being obscured, no close button is required.
Relevant Information for Teams
Project Coordinators
N/A
Designers
If the collapse/pop-up covers content, it does need a close button. One way around this is to not have the collapse as a layer on top of content but rather “inserted” to be its own content. This is an especially valuable and preferred in mobile views. Due to the complications that collapses can pose, modals would be the preferred solution for content that must be hidden and then revealed.
Developers
This is mostly something that will come up with 3rd-party scans, because DQM and SortSite will not pick up on tab order.
Solution 1: It is developed as a “real” modal with a close button included in the header of the modal. In bootstrap 3 and up, the tabbing is “trapped” inside of the modal by default, and you cannot exit it without exiting the modal.
Solution 2: It is included as a faux modal (div with positioning or a collapse with a toggle, etc.) and the toggle is separate. The toggle must have a change state (Login changes to Close, for example), and the collapse area must push the rest of the site down, rather than being positioned absolutely over the top of the site. You will need to insert your own code to ensure that tabbing is “trapped” within the opened collapse/div until it is closed, check for/add scripting to force the modal closed when Escape is pressed, and make sure the focus returns to the button that opened the modal upon its closing.Table Learn More Buttons
Question
Must each button be different for each link?
Answer
Yes. If the URL is different, or if the link is opening a unique modal, the link text must be unique to match. For example, “Learn more about Checking”, “Learn more about Savings”, etc. But if one link opens the same modal, “Learn more about Checking” is acceptable for both links.
Note: If more text is absolutely not an option, then the buttons must receive an aria-label in code view to differentiate them from each other.Relevant Information for Teams
Project Coordinators
Make sure links are specific enough for where the link is going or what it is opening.
Designers
Make sure links are specific enough for where the link is going or what it is opening.
Developers
Make sure links are specific enough for where the link is going or what it is opening.
Table Header Cells
Question
Must the first cell (left most cell) contain text in the header row?
Answer
The recommended solution is to add text in that cell. However, if it needs to remain blank, extra accommodations will need to be made either by the client/PC or by dev.
Relevant Information for Teams
Project Coordinators
If that cell is not filled, it needs to be changed from a table head cell (
) to a table data cell ( ), and if it has a scope attribute, remove it. (Only table head cells have a scope.) Another option would be to add text wrapped in an sr-only class. This would make the content present, but not visible.
Reminder: Tables may NOT contain H1-H6 elements. They expect only table head cells to serve this purpose.Designers
N/A
Developers
If that cell is not filled, it needs to be changed from a table head cell (
) to a table data cell ( ), and if it has a scope attribute, remove it. (Only table head cells have a scope.). OR, as a non-recommended solution, there can be sr-only text inside of the .
Reminder: Tables may NOT contain H1-H6 elements. They expect only table head cells to serve this purpose.Autofocusing on Inputs (such as Online Banking)
Question
Can we autofocus on inputs?
Answer
Technically, yes. However, it needs to be the expected function. For example, in the case of online banking, if it isn’t in a modal or collapse, it does NOT make sense to have the cursor be focused on the input upon load of the page (because it would skip other content). However, in the case of a modal, it can make sense to do so since the purpose of opening the modal is to log in to online banking.
Relevant Information for Teams
Project Coordinators
Be cautious of the request to add this functionality automatically without considering usage.
Designers
N/A
Developers
At this point in time, if this is requested and the usage makes sense, we will use JavaScript to initiate that focus upon appropriate user action. (The autofocus attribute is not supported by Safari yet.)
OLB Autofocus
Question
Can you put autofocus on the username field of the OLB Form?
Answer
If OLB is always visible on the page, then you cannot have autofocus. This would be too confusing for a user to be forced to a specific part of the webpage without them navigating there themselves. However, If it’s in an area that becomes displayed via user interaction (e.g., opening a modal or a collapsed accordion), then it can have autofocus on the username field.
Relevant Information for Teams
Project Coordinators
Should advise clients that this is not recommended if the OLB is always visible.
Designers
N/A
Developers
Applying autofocus by JS works collapse and modals OLBs. If you are going to use the html autofocus, be sure to add aria-modal=“true”.
Placeholder Text
Question
Does the placeholder text inside an input field need to meet certain contrast ratios?
Answer
Yes. Placeholder text needs to meet 3:1 contrast requirements to the background color of the input field (unless it is to be “disabled” text, which is not required to meet contrast). In addition, if the border changing color is part of differentiating the state (active/pushed/focused) of a button, that border/focus color must also meet contrast of 3:1 with the background color that the input field is on. This does not have to be a 4 sided border.
Relevant Information for Teams
Project Coordinators
N/A
Designers
Be aware of contrast ratios on placeholder text and any borders visible on an input field.
Developers
Make sure contrast ratios meet the 3:1 requirement on placeholder text and any visible borders for an input field.
Radio Buttons
Question
I’ve seen a usability flag that says a radio button has to be chosen by default. Is this true?
Answer
This is a very debatable subject. We’ve decided that we will not set radio buttons to be chosen by default because we want a user to have to perform an action on this form field (especially if it a required field). This way, if they overlook it, it gets an error flag. It also ensures something they didn’t actually choose isn’t chosen for them.
Multi-Level Nested Fieldsets on Forms
After further review and testing of forms built with Bootstrap4, this does not appear to trigger any ADA warnings.
Dinkytown Calcs
Question
Do we need to scan the quarterly updates that dinkytown sends us to make sure there are no additional ADA issues introduces?
Answer
Yes. Laura R, Walter, and Krishna have started scanning all calc updates and will work on any changes needed for those findings with Dinkytown
Google ReCaptcha Code
Question
We’ve seen ADA issues flagged with the third-party captcha code. Are we responsible for fixing this?
Answer
Under Review. We are looking into whether using a newer version of the code will help.
To clarify: In the meeting, I show everyone the Priority Checkpoints setup. I’ve since discovered that changing that page will update all of our clients simultaneously; it is not specific to the individual client’s area you happened to be in prior to that. As that is the case, all of the ones that I had turned on (thinking they were specific to that project) I have gone back and turned off until we can determine the ramifications of modifying these options for all clients. (I still think it’s a good idea to mark those as priority, but we might want some messaging about that to DQM clients before we go do it.) ↩︎ ↩︎