Skip to content

Instantly share code, notes, and snippets.

@smhigley
Last active December 17, 2020 18:26
Show Gist options
  • Save smhigley/8a8ed4e1523d20607922e20613b10fbe to your computer and use it in GitHub Desktop.
Save smhigley/8a8ed4e1523d20607922e20613b10fbe to your computer and use it in GitHub Desktop.

Uses of "descendant" in the ARIA spec

Summary

  • unclear use/used on its own: 51
  • descendant element: 12
  • active descendant: 8
  • DOM descendant: 6
  • descendant node: 2

Details

  1. Important Terms

    • DOM descendant, definition of "Owned elements": "An 'owned element' is any DOM descendant of the element, any element specified as a child via aria-owns, or any DOM descendant of the owned child."
  2. Managing Focus

    • unclear use "the container is responsible for tracking the last descendant that was active"
    • active descendant: "when a previously focused container is refocused, the active descendant be the same element as the active descendant when the container was last focused" + 2 more similar uses
    • unclear use "The user may also activate the container by clicking on one of the descendants within it."
    • active descendant: "When the container or its active descendant has focus", "the arrow keys, to change the currently active descendant"
      • active descendant*: "User agents are not expected to validate that the active descendant is a descendant of the container element"
    • active descendant: "Any keyboard events directed at the active descendant bubble up"
  3. Managing focus - Information for authors

    • unclear use: "Authors MAY use aria-activedescendant to inform assistive technologies which descendant of a widget"
    • active descendant (3): "aria-activedescendant to point to the ID of the currently active descendant", "The author, not the user agent, is responsible for styling the currently active descendant", "cannot use :focus to style the currently active descendant"
  4. Required Owned Elements

    • unclear use: "While processing of a role may be incomplete without elements of given roles present as descendants, ..."
  5. Required Context Role

    • descendant element: "elements of the listed roles do not always need descendant elements of the given role in order to be meaningful"
    • unclear use: "See required owned elements for requirements about elements that require presence of a given descendant to be processed properly."
  6. Accessible Name Calc

    • descendant element: "legend: name comes from the text value of the first descendant element(ref link) node with the role of legend"
  7. Presentational Children

    • DOM descendant: "The DOM descendants are presentational."
    • unclear use: "User agents SHOULD NOT expose descendants of this element"
    • descendant nodes: "If user agents do not hide the descendant nodes"
  8. Definition of Roles

    • unclear use, composite dfn: "A widget that may contain navigable descendants or owned children."
    • descendant window, dialog dfn: "A dialog is a descendant window of the primary window of a web application."
  9. Banner role

    • DOM descendant: "they may have multiple banner elements as DOM descendants, ..."
  10. Combobox role

    • unclear use (3): "and that it is not a descendant of the element with role combobox", "from the input to the first focusable descendant of the popup element", "When a descendant of the popup element"
    • descendant element: "the value of the combobox is represented by its descendant elements"
    • descendant content: "the name of a button from its descendant content"
  11. Comment role

    • unclear use: "a semantic descendant of the comment"
    • DOM descendant: "by making it a DOM descendant element"
  12. Composite role

    • unclear use (2): "A widget that may contain navigable descendants or owned children", "to navigate to elements that are descendants or owned children"
  13. Contentinfo role

    • DOM descendant: "multiple contentinfo elements as DOM descendants"
  14. Definition role

    • unclear use: "making the element with role term a descendant of the element with role definition."
  15. Dialog role

    • descendant window: "A dialog is a descendant window of the primary window"
    • descendant element: "at least one focusable descendant element"
  16. Feed role

    • descendant element: "focus is set on the article or one of its descendant elements"
  17. Generic role

    • unclear use (2): "to semantically group descendants in a named container", "accessible states and properties for its descendants"
  18. Grid role

    • unclear use: "authors SHOULD manage focus of descendants of a grid (references managing focus)"
    • descendant element?: "the row and gridcell roles to the descendant HTML tr and td elements"
  19. Legend role

    • descendant element: "only the first descendant element with role legend"
  20. Listbox role

    • unclear use: "manage focus of option descendants for all instances"
  21. Main role

    • DOM descendants: "multiple main elements as DOM descendants"
  22. Menu + menubar role

    • unclear use (2): "manage focus of descendants for all instances (refs managing focus)"
  23. Presentation role

    • descendant element (3): "user agent MUST expose content and descendant elements", "Some elements are only complete when additional descendant elements", "The descendant elements that complete the semantics"
    • unclear use, mixed with children: "table elements (matching the table role) require tr descendants, which in turn require th or td children"
    • unclear use (2): "HTML table element's thead/tbody/tfoot/tr/th/td descendants", "the HTML specification indicates that these are required structural descendants of the table element"
  24. Spinbutton role

    • unclear use: "authors SHOULD manage focus of descendants (refs managing focus)"
  25. Tablist role

    • unclear use: "authors SHOULD manage focus of descendants (refs managing focus)"
  26. Toolbar role

    • unclear use: "authors SHOULD manage focus of descendants (refs managing focus)"
  27. Tree role

    • unclear use: "authors SHOULD manage focus of descendants (refs managing focus)"
  28. Treegrid role

    • unclear use: "authors SHOULD manage focus of descendants (refs managing focus)"
  29. Definition of states & props

    • unclear use, aria-multiselectable: "one item from the current selectable descendants."
  30. aria-activedescendant prop

    • unclear use (3): "may contain multiple focusable descendants", "element with DOM focus or a logical descendant", "the value of aria-activedescendant on the combobox element refers to a descendant of a popup"
    • active descendant: "ensure that the currently active descendant is visible"
  31. aria-disabled state

    • unclear use (2): "support navigation to descendants", "The element and all focusable descendants are disabled"
    • descendant element: "the current element and all focusable descendant elements"
  32. aria-haspopup prop

    • unclear use: "manages focus of all its descendants as described in Managing Focus"
  33. aria-modal prop

    • unclear use (2): "can be controlled using only descendants of the modal element", "the button should be a descendant of the dialog"
  34. aria-multiselectable

    • unclear use (4): "the current selectable descendants", "Authors SHOULD ensure that selected descendants", "selectable descendants that are not selected", "use the aria-selected attribute on descendants"
  35. aria-readonly

    • unclear use (2): "the element or its focusable descendants", "not allow user navigation to descendants."
  36. aria-relevant

    • descendant element: "the value provided on a descendant element"
    • descendant node: "monitor any descendant node change"
    • unclear use: "added to any descendant in the accessibility tree"
  37. aria-selected

    • unclear use: "any selectable descendant of a container"
  38. Excluding Elements from the Acc Tree

    • unclear use (6): "the element's descendants and text content", "Elements, including their descendants,", "overrides aria-hidden="false" on descendants.", "Any descendants of elements", "the descendant is not allowed", "text content of any excluded descendants"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment