WAS Study Flashcards
(130 cards)
What are the main priorities when it comes to page titles?
- They must be present and contain text 2. They must update when the page URL changes (even for SPA) 3. They must be accurate and informative
What are page title best practices?
Theys should be concise, they should be unique if possible, unique information should come first, title should match or be similar to the top heading in the main content.
What are the main priorities when it comes to page language?
- The primary language of the page must be specified in the [html] element 2. The language must be identified using the standard list of language codes (lang=”en”, not lang=”english”. All screen readers support the 2-letter language codes, while some will support the addition of a localized code (en-gb for english - great britain)
What happens if a web page does not specify the page language, or if the language is wrong?
- If it does not specify the language, it will read it in the default language the user selected when installing the screen reader. 2. If it is in the wrong language, it will read the page in a funky accent (i.e an english page with a spanish language specification)
How can you specify the language of a part within the page?
Inline language changes can be identified by using the lang=”xx” attribute on any block level elements ([div], [h1], [p], [table], etc.) as well as inline elements ([span], [a], [strong], etc.)
Name the HTML landmarks and there ARIA role equivelents
HTML: [header], [nav], [main], [aside], [section], [article], [form], [footer]. ARIA: role=”banner”, role=”navigation”, role=”main”, role=”complimentary”, role=”region”, role=”article”, role=”form”, role=”contentinfo”
What is the best way to distinguish between multiple landmarks on a page, such as a main navigation and a table of contents?
by using programmatically determinable labels (aria-label or aria-labelledby). Ex: [nav aria-label=”Table of Contents”] or if table of contents is a heading already, you can use aria-labelledby.
Which 3 aria roles should not be used more than once per page?
Banner, Main, and Contentinfo
What are the two ways headings can be established progromatically?
Using the proper semantic tag, like [h1] ; Or using role=”heading” with aria-level=”[1-6]”. ([div role=”heading” aria-level=”1”])
What are the best practices for headings
Headings are created using proper structure and not done visually. Headings are accurate and informative of the content within that section. Headings should be concice and relatively brief. Do not skip hierarchal levels ([h3] then [h1])
Which of the following will be recognized as a valid heading by screen readers? A. [h1][/h1] B. [h7]Legal disclaimer[/h7] C. [div role=”heading” aria-level=”3”]The secrets beneath the ocean’s surface[/div] D. [p class=”heading level2” style=”font-size: 200%; font-weight: bold”]Understand yourself[/p]
C
True or False - Screen readers will read the alt text of an image within a heading as part of the heading text.
TRUE
What are the two ways to designate links programatically?
- Using the [a] tag with a valid href attribute. 2. Using role=”link” AND tabindex=”0” + the associated js allows the user to activate the link with either a click action or the enter key (both event handlers must be present).
In general, When should you use a link vs a button, and why is it important for Screen Reader users?
Links should take the user somewhere(either to a different page or on the same page), where Buttons should activate scriped functionality (like opening a modal [submit buttons are an exception]). When a screen reader user wants to find a link, the user may pull up the list of links and not find the link anywhere because it turns out that it has actually been designated as a button in the markup, or vice versa.
What is the precedence ranking for link text to a SR?
aria-labelledby
aria-label
Text contained between the opening [a] and closing [/a] elements (including alt text on images)
title attribute (note that this is considered a last resort method for screen readers to find something; it should not be considered a primary technique for giving names to links)
True or False - links can have an accessible name by providing an image with alt text within the [a] tag?
True, this is valid: [a href=”https://dequeuniversity.com/curriculum/”] [img src=”info.png” alt=”Web accessibility curriculum”] [/a]
What are some best practices for links?
- They should describe purpose or destination when read out of context 2. They should say if they open in a new window 3. They should say the document type if applicable (PDF Document) 4. They need to be visually distinguishable from surrounding text
What contrast ratio is needed for links in comparison to surrounding text?
3 to 1
What are the best practices for navigations?
They should be labelled by [nav] or role=”navigation”. They should denote which page is active visually and by using aria-current (or an aria-label or clip-text technique). Navigation should be consistent and not change order from page to page.
What are the best practices for skip links?
They should be at the beginning of the DOM. They should be visible all the time or on keyboard focus. Do not use display:none or else keyboard wont be able to access it.
What are the best practices for focus/reading order?
The reading and navigation order must be logical and intuitive. Don’t use positive tabindex. Focus order will follow the DOM order, not the visual order.
What are the rules for single-key shortcuts
If they exist there must be a way to turn them off, re-map them, or are only active when the relevant component has focus. Users who navigate with speech accidentally say ‘D’ and delete something instead of their intended word of ‘D-enote’
What are best practices for pagination?
Pagination should have a visual way to denote the active page, and it should denote to blind users as well - either through aria-current, aria-label, ect. Ex: ( [li][a href=”#” aria-current=”page”]3[/a][/li])
Best practices for semantic markup of tables?
Tabular data should be represented in a [table]. Don’t create fake tables (create the look of a table without using actual table semantics)