Landmark

Landmarks help your users to navigate your site by giving them "landmarks" to
the regions they might want to see. Are they trying the search the site? Do
they want to access the main content? Do they want information about the content,
like copyright and legal notices--contentInfo, if you will?

Landmarks keep your users from being overwhelmed by a slew of information to sift through
or from being bored by need to tab through the same old set of unlabeled links on
every single page of your site.

Generally, these landmark tags are implicit in HTML5. The default landmark roles
are specified here.
search does not have a corresponding HTML5 tag.

banner : Html.Attribute msg

This banner should have the page title in it. In HTML5, the header element
generally is implicitly a banner. (For specifics on what DOM relationships will
affect this default behavior, please check out W3.)

Copyrights, privacy statements, etc. There ought only be one element with the
content info role per page.

You may already have a content info element role fulfilled
on your page via the HTML5 footer element--as long as its context is the body, not
a section or main or what-have-you (see W3 for the full list).

Navigation--wrap lists of links intended to help your users navigate your site
in an element with this role or use HTML5's nav tag.

If there's more than one nav list on a given page, please make sure that the
navigation is labeled (what kinds of links should your users expect to find in
this list?). For examples of how to do this using the labeledBy property,
check out W3.

If you're going to learn about an ARIA Landmark role, this is the one to know,
as HTML5 does NOT have a corresponding element! Add this property to forms to signify
that they describe search functionality.

As ever, if there's more than one search element on the page, please be sure to label.

Indicate whether an element (in a single- or multi-selectable widget) is or is not selected.

indeterminate : Html.Attribute msg

Sets the indeterminate value to be true.

Validity

invalid : Bool -> Html.Attribute msg

Supported for all elements.

For invalid grammar or spelling, please see invalidGrammar and invalidSpelling respectively.

invalidGrammar : Html.Attribute msg

Supported for all elements.

invalidSpelling : Html.Attribute msg

Supported for all elements.

Interactability

expanded : Bool -> Html.Attribute msg

Available on button, comboBox, document, link, section, sectionHead, and window.

Trickily, this attribute can be applied to either an element that is itself
expanded/collapsed, OR to an elment it controls that is either expanded/collapsed.
In the latter case, throw on a controls attribute as well to clarify the relationship.

Indicates read-only status of a widget, although normal navigation rules and
copying behavior should apply. (Read: readOnly elements are navigable but
unchangeable, and disabled elements are neither navigable nor unchangebale).

disabled : Bool -> Html.Attribute msg

Supported for all elements. Elements are not disabled (are enabled) by default.

Pop-Ups

hasMenuPopUp : Html.Attribute msg

Indicate that interaction with this element can trigger a menu pop-up.

Be careful while managing focus and triggering.

hasListBoxPopUp : Html.Attribute msg

Indicate that interaction with this element can trigger a listBox pop-up.

Be careful while managing focus and triggering.

hasTreePopUp : Html.Attribute msg

Indicate that interaction with this element can trigger a tree pop-up.

Be careful while managing focus and triggering.

hasGridPopUp : Html.Attribute msg

Indicate that interaction with this element can trigger a grid pop-up.

Be careful while managing focus and triggering.

hasDialogPopUp : Html.Attribute msg

Indicate that interaction with this element can trigger a dialog pop-up.

Be careful while managing focus and triggering.

Pop-ups are supported for all elements (but not meant for use on tooltips).

The pop-up itself needs to have a containing element with one of these roles:
menu, listbox, tree, grid, or dialog, and the pop-up value must match.
That is, use hasMenuPopUp if the pop-up container has a role of menu.

Only necessary when not all of the items in the set are in the DOM. Use with setSize.

Current

currentItem : Bool -> Html.Attribute msg

Supported by all elements.

currentPage : Html.Attribute msg

Supported by all elements.

Indicate that a link in a nav or list is the current location.

currentStep : Html.Attribute msg

Supported by all elements.

Indicate which step in a step-based flow is the current one.

currentLocation : Html.Attribute msg

Supported by all elements.

currentDate : Html.Attribute msg

Supported by all elements.

As in a calendar widget.

currentTime : Html.Attribute msg

Supported by all elements.

As in a timepicker widget.

errorMessage : String -> Html.Attribute msg

Supported by all elements.

Reference the element that has error details. e.g., if you've got an input field
that's invalid, add errorMessage to the input with the id of whatever element
is telling the user in what way their submission is wrong.