0.1.0 • Published 7 years ago

karma-accessibility v0.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

karma-accessibility

js-standard-style npm version npm downloads

Build Status

Adapter for the Google Accessibility testing framework.

Installation

$ npm install karma-accessibility@0.1.0 --save-dev

Configuration

// karma.conf.js
module.exports = function(config) {
  config.set({
    frameworks: ['accessibility'],

    files: [
      '*.js'
    ],

    accessibility: {
        // if true, prints a list of all available rules before running the tests
        printRules: true,

        // array of rules to run (the names from the list above)
        auditRulesToRun: [],

        // array of rules to ignore (the names from the list above)
        auditRulesToIgnore: [],

        // CSS selector to restrict the tests to a specific portion of your HTML
        scope: 'body',

        // if true, a message is logged when some rules were not applied due to
        // some issue with the document
        showUnsupportedRulesWarning: false,

        // limit the amount of results logged on console
        maxResults: 0,

        // a map of rule name and CSS selectors for elements that should NOT be
        // checked against that rule
        ignoreSelectors: {
            lowContrast: ['.no-contrast'],
            pageWithoutTitle: ['title']
        }
    }
}

Available Rules

RuleDescription
ariaOnReservedElementThis element does not support ARIA roles, states and properties
ariaOwnsDescendantaria-owns should not be used if ownership is implicit in the DOM
ariaRoleNotScopedElements with ARIA roles must be in the correct scope
audioWithoutControlsAudio elements should have controls
badAriaAttributeThis element has an invalid ARIA attribute
badAriaAttributeValueARIA state and property values must be valid
badAriaRoleElements with ARIA roles must use a valid, non-abstract ARIA role
controlsWithoutLabelControls and media elements should have labels
duplicateIdAny ID referred to via an IDREF must be unique in the DOM
focusableElementNotVisibleAndNotAriaHiddenThese elements are focusable but either invisible or obscured by another element
humanLangMissingThe web page should have the content's human language indicated in the markup
imagesWithoutAltTextImages should have a text alternative or presentational role
linkWithUnclearPurposeThe purpose of each link should be clear from the link text
lowContrastElementsText elements should have a reasonable contrast ratio
mainRoleOnInappropriateElementrole=main should only appear on significant elements
elementsWithMeaningfulBackgroundImageMeaningful images should not be used in element backgrounds
multipleAriaOwnersAn element's ID must not be present in more that one aria-owns attribute at any time
multipleLabelableElementsPerLabelA label element may not have labelable descendants other than its labeled control.
nonExistentRelatedElementAttributes which refer to other elements by ID should refer to elements which exist in the DOM
pageWithoutTitleThe web page should have a title that describes topic or purpose
requiredAriaAttributeMissingElements with ARIA roles must have all required attributes for that role
requiredOwnedAriaRoleMissingElements with ARIA roles must ensure required owned elements are present
roleTooltipRequiresDescribedbyElements with role=tooltip should have a corresponding element with aria-describedby
tabIndexGreaterThanZeroAvoid positive integer values for tabIndex
tableHasAppropriateHeadersTables should have appropriate headers
uncontrolledTabpanelA tabpanel should be related to a tab via aria-controls or aria-labelledby
unfocusableElementsWithOnClickElements with onclick handlers must be focusable
unsupportedAriaAttributeThis element has an unsupported ARIA attribute
videoWithoutCaptionsVideo elements should use elements to provide captions'

For more information on Karma see the homepage.