You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 25 Next »

The following meet WCAG 2.0 AA standards for both legal conformance and accessibility best practices.

Page titles

Required

  • Must be present.

  • Must be updated when the URL changes.

  • Must be accurate and informative.

Non-required / best practice

  • Should describe result of user action or change of context if either occur

  • Should be concise.

  • Should be unique, if possible.

  • Unique information should come first in the title. Example: About us | Cornell Alumni

  • Should match H1 tag

Language

Required

  • Must be identified accurately in the <html> tag with a valid language code. Example: <html lang="en">
  • Valid lang attribute must be used for inline language changes. Example: <p>And then I said in a German accent, <span lang="de">Bach ist ein Komponist.</span>.</p>

Headings

Required

  • Must be accurate and informative.

Non-required / best practice

  • If text looks like a heading, or is structurally a heading, use HTML heading tags. Example: <h2>The history of Cornell University</h2>

  • Do not use HTML heading tags for anything other than true headings

  • Should be concise

  • Should convey clear and accurate structural outline of web page content

  • Should not skip hierarchical levels Example: Don't jump from <h2> to <h4>

  • Beginning of main content should start with <h1>

  • Should only have one <h1>

Navigation

Required

  • Navigation patterns that are repeated on web pages MUST be presented in the same relative order each time they appear and MUST NOT change order when navigating through the site.
  • Skip link must be visible on keyboard focus (or at all times).
  • Reading order must be logical.
  • Navigation order of focusable elements must be logical.

Non-required / best practice

  • Navigation lists should be marked with <nav> or role="navigation".
  • Include a visible way of letting users know which page they're on. Same for screen readers. Same for paginated views.
  • The skip link should be the first focusable element on a page.
  • Page table of contents should reflect the heading structure of the page.
  • Positive tabindex values should not be used. 

Required

  • Must be visually distinguishable from surrounding text. Color alone isn't enough unless color contrast is at least 3:1, and hovering or focus provides additional differentiation. 
  • Must be semantically designated as links. Example: <a href="https://cornell.edu">Cornell University</a> 
  • Must have programmatically-discernible text. Example: 1) if an image is used inside a link, put link text in the alt tag 2) if an icon is used, add an aria-label such as: <a href="https://cornell.edu" aria-label="Cornell University"><icon html... \></a>
  • Link labels and text alternatives must be consistent across the website. Example: don't use "Contact Us" and "Give us a call" for the same URL
  • Anything focusable (that you can tab to) must have visual indicator appear when it's focused.

Non-required / best practice

  • Links and buttons should semantically reflect their functions.
  • Link text should clearly state its purpose.
  • Link text shouldn't use the word "Link." Example: Say "More information on gummy bears." not "Link to more information on gummy bears."
  • Indicate that a link will open in a new window. Example: add a new-window icon next to links that open in a new window
  • Links to files or non-web destinations should tell users what kind of files they are. Example: add "PDF" next to links to PDFs
  • Enhance focus indicator on focusable elements. Example: instead of the default browser focus, add a colorful, thicker border with a change in background when elements receive focus

Lists

Required

Lists MUST be constructed using the appropriate semantic markup.

Tables

Required

  • Table headers MUST be designated with <th>.
  • Data table header text MUST accurately describe the category of the corresponding data cells.
  • Table data cells MUST be associated with their corresponding header cells.
  • Table data group headers MUST be associated with their corresponding data cell groups.
  • Header/data associations that cannot be designated with <th> and scope MUST be designated with headers plus id
  • Data table headers and data associations MUST NOT be referenced across nested, merged, or separate tables.
  • Layout tables MUST NOT contain data table markup.

Non-required / best practice

  • Tabular data SHOULD be represented in a <table>.
  • Data tables SHOULD have a programmatically-associated caption or name.
  • The name/caption of a data table SHOULD describe the identity or purpose of the table accurately, meaningfully, and succinctly.
  • The name/caption of each data table SHOULD be unique within the context of other tables on the same page.
  • A data table summary, if provided, SHOULD make the table more understandable to screen reader users.
  • Tables SHOULD NOT be used for the purpose of purely visual (non-data) layout.

iFrames

Required

  • iframes that convey content to users MUST have a non-empty title attribute.
  • The iframe title MUST be accurate and descriptive.
  • Frames MUST have a unique title (in the context of the page).
  • The source page of an iframe MUST have a valid, meaningful <title>.

Non-required / best practice

  • The heading hierarchy of an iframe SHOULD be designed to fit within the heading hierarchy of the parent document, if possible.
  • Hidden frames or frames that do not convey content to users SHOULD be hidden from assistive technologies using aria-hidden="true".

Other (content)

Required

  • Critical emphasis in the text SHOULD be conveyed through visual styling.
  • Critical emphasis in the text SHOULD be conveyed in a text-based format.
  • The <blockquote> element SHOULD be used to designate long (block level) quotations.
  • The <blockquote> element SHOULD NOT be used for visual styling alone.
  • The <q> element (for inline quotations) SHOULD NOT be used as the only way to designate quotations.
  • Code SHOULD be marked with the <code> element and styled to look different from non-code text.
  • Blocks of code SHOULD be formatted with the <pre> element.
  • Strikethrough text SHOULD be marked with the <del> element.
  • Text designated for insertion SHOULD be marked with the <ins> element.
  • Highlighted text SHOULD be marked with the <mark> element.
  • Critical highlighted text SHOULD be supplemented with a text-based method to convey the meaning of the highlighting.

Non-required / best practice

  • Critical strikethrough text MUST be supplemented with a text-based method to convey the meaning of the strikethrough.
  • Critical text designated for insertion MUST be supplemented with a text-based method to convey the meaning of the insertion.
  • No labels