Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check configuration options #2142

Closed
straker opened this issue Apr 1, 2020 · 1 comment
Closed

Check configuration options #2142

straker opened this issue Apr 1, 2020 · 1 comment

Comments

@straker
Copy link
Contributor

straker commented Apr 1, 2020

Here is the result of auditing our checks and looking to see if we could add more options to them to make them more flexible:

Check configuration options

  • Aria/abstractrole
    • Option for what role is considered abstract
  • Aria/allowed-attr
    • Option for what attributes are allowed on roles
  • Aria/aria-allowed-role
    • Option for what roles are allowed on element
  • Aria/aria-hidden-body
    • None
  • Aria/aria-roledescription
    • Already optioned
  • Aria/errormessage
    • Already optioned
  • Aria/fallback
    • none
  • Aria/has-widget-role
    • Option for what role is considered widget
  • Aria/implicit-role-fallback
    • Deprecated
  • Aria/invallidrole
    • Options for allowAbstract and flagUnsupported for aria.validRole (we should have a way to configure the aria.lookuptable so users can modify the roles there)
  • Aria/no-implicit-explicit-label
    • None
  • Aria/required-attr
    • Already optioned
  • Aria/required-children
    • Already optioned
  • Aria/required-parents
    • we should have a way to configure the aria.lookuptable so users can modify the roles there. This is mostly what every aria check needs
  • Color/color-contrast
    • Option for what fontWeight equals bold (700)
    • Option for what pt size equals smallBold (bold && 14)
    • Option for what pt size equals smallNotBold (!bold && 18)
    • Option for small text ratio (4.5)
    • Option for large text ratio (3)
    • Option for mininum contrast for small text (1.0)
  • Color/element-has-image
    • Option for graphicNodes
  • Color/link-in-text-block
    • None
  • Forms/autocomplete-appropriate
    • Already optioned
  • Forms/autocomplete-valid
    • None
  • Forms/fieldset
    • Deprecated
  • Forms/group-labelledby
    • Deprecated
  • Keyboard/accesskeys
    • None
  • Keyboard/focusable-content
    • None
  • Keyboard/focusable-disabled
    • Options for elements that can be disabled
    • Options to pass to isModalOpen
  • Keyboard/focusable-element
    • None
  • Keyboard/focusable-modal-open
    • Options to pass to isModalOpen
  • Keyboard/focusable-no-name
    • None
  • Keyboard/focusable-not-tabbable
    • Options for elements that can be disabled
    • Options to pass to isModalOpen
  • Keyboard/landmark-is-top-level
    • Options for aria.getRolesByType('landmark')
  • Keyboard/page-has-elm
    • Already optioned
  • Keyboard/page-no-duplicate
    • Already optioned
  • Keyboard/tabindex
    • None
  • Label/alt-space-value
    • None
  • Label/duplicate-img-label
    • Options for parent selector
  • Label/explicit
    • None
  • Label/help-same-as-label
    • None
  • Label/hidden-explicit-label
    • None
  • Label/implicit
    • None
  • Label/label-content-name-mismatch
    • Already optioned
  • Label/multiple-label
    • None
  • Label/title-only
    • Option for which attributes to look at
  • Landmarks/landmark-is-unique
    • None
  • Language/has-lang
    • Options for which attributes to look at
  • Language/valid-lang
    • Options for which attributes to look at
  • Language/xml-lang-mismatch
    • none
  • Lists/dlitem
    • Option for which elements/roles can surround dlitem
  • Lists/listitem
    • None (possibly option for which elements/roles can surround listitem)
  • Lists/only-dlitems
    • Option for allowed roles and elements
  • Lists/only-listitems
    • Option for allowed roles and elements
  • Lists/structured-dlitems
    • None
  • Media/caption
    • Option for which attributes to look at (combine with description.js)
  • media/description
    • Option for which attributes to look at
  • Media/frame-tested
    • None
  • Media/no-autoplay-audio
    • Already optioned
  • Mobile/css-orientation-lock
    • None
  • Mobile/meta-viewport-scale
    • Already optioned
  • Navigation/header-present
    • Option for selector to use // This is a very generic evaluate method
  • Navigation/heading-order
    • Option for the number of levels you're allowed to skip
  • Navigation/identical-links-same-purpose
    • None
  • Navigation/Internal-link-present
    • None
  • Navigation/landmark
    • Option for selector // Is a generic evaluate
  • Navigation/meta-refresh
    • None
  • Navigation/p-as-heading
    • None
  • Navigation/region
    • Option for what elements are considered regions
  • Navigation/skip-link
    • None
  • Navigation/unique-frame-title
    • None
  • Parsing/duplicate-id
    • None
  • Shared/aria-label
    • None
  • Shared/aria-labelledby
    • None
  • Shared/avoid-inline-spacing
    • Option for inline spacing css props
  • Shared/button-has-visible-text
    • None
  • Shared/doc-has-title
    • None
  • Shared/exists
    • None
  • Shared/has-alt
    • Option for list of elements to look at
    • Possible option for attribute to look at?
  • Shared/has-visible-text
    • None
  • Shared/is-on-screen
    • None
  • Shared/non-empty-alt
    • Possible option for attribute to look at?
  • Shared/non-empty-if-present (this is a very specific check with a very generic name)
    • None
  • Shared/non-empty-title
    • None
  • Shared/non-empty-value
    • None (these non-empty things could be a generic check that asks you to identify the attribute to get)
  • Shared/role-none
    • None
  • Shared/role-presentation
    • None (again, these could be a generic check that asks you for the value of the role)
  • Shared/svg-non-empty-title
    • None (could be wrapped in non-empty with a flag for looking for children)
  • Tables/caption-faked
    • None
  • Tables/has-caption
    • Deprecated (could be a more generic check called 'has-prop')
  • Tables/has-summary
    • Deprecated (ditto above generic check)
  • Tables/has-th (a very specific check with a very generic name)
    • Deprecated
  • Tables/headers-visible-text // pull it out, unused code
    • None
  • Tables/html5-scope
    • None
  • Tables/same-caption-summary
    • None (could we create a generic check that asks about same value? We have a few checks that makes sure things aren't duplicated (button name, etc.)
  • Tables/scope-value
    • Option for valid values of scope
  • Tables/td-has-header
    • None
  • Tables/td-headers-attr
    • None
  • Tables/th-has-data-cells
    • None
  • Tables/th-single-row-column // see if this is unused, if so pull it
    • This is actually not used anywhere (no json metadata file either)
  • Visibility/hidden-content
    • Option for whitelist node names

List of some generic check ideas

  • matches (you pass a matches object and the check returns true if it matches. this covers has-attr and has-prop generic checks, and has-lang and has-alt check)
  • non-empty (options for value/prop to look at)
  • matches-descendants (run qsa with a selector, check if > 0)
  • has-visible-content?

Global options

Todo, figure out how to globally manipulate the ARIA lookup table, to avoid having to update these on the check level. Might want to figure out a way to make that work for other things too.

  • Options to pass to isModalOpen

  • Consider an HTML lookup table for things like the list rules, what's their context model like, see lib/commons/text/native-element-types.js

@straker
Copy link
Contributor Author

straker commented Jun 18, 2020

Closing as we have the issue recorded

@straker straker closed this as completed Jun 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant