UNPKG

@qualweb/act-rules

Version:

ACT rules module for qualweb web accessibility evaluator

1,252 lines 60.9 kB
{ "QW_ACT_R1": { "name": "HTML page has non-empty title", "code": "QW-ACT-R1", "mapping": "2779a5", "description": "This rule checks that a non-embedded HTML page has a non-empty title.", "metadata": { "target": { "element": "title" }, "success-criteria": [ { "name": "2.4.2", "level": "A", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/page-titled", "url_tr": "https://www.w3.org/TR/WCAG21/#page-titled" } ], "related": ["G88", "H25"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/2779a5/", "type": ["ACTRule", "TestCase"], "a11yReq": ["WCAG21:title"] } }, "QW_ACT_R2": { "name": "HTML page has lang attribute", "code": "QW-ACT-R2", "mapping": "b5c3f8", "description": "This rule checks that an HTML page has a non-empty lang attribute.", "metadata": { "target": { "element": "html", "attributes": "lang" }, "success-criteria": [ { "name": "3.1.1", "level": "A", "principle": "Understandable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/language-of-page", "url_tr": "https://www.w3.org/TR/WCAG21/#language-of-page" } ], "related": ["H57"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/b5c3f8/", "type": ["ACTRule", "TestCase"], "a11yReq": ["WCAG21:language"] } }, "QW_ACT_R4": { "name": "Meta element has no refresh delay", "code": "QW-ACT-R4", "mapping": "bc659a", "description": "This rule checks that the meta element is not used for delayed redirecting or refreshing.", "metadata": { "target": { "element": "meta" }, "success-criteria": [ { "name": "2.2.1", "level": "A", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/timing-adjustable.html", "url_tr": "https://www.w3.org/TR/WCAG21/#timing-adjustable" }, { "name": "2.2.4", "level": "AAA", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/interruptions", "url_tr": "https://www.w3.org/TR/WCAG21/#interruptions" }, { "name": "3.2.5", "level": "AAA", "principle": "Understandable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/change-on-request", "url_tr": "https://www.w3.org/TR/WCAG21/#change-on-request" } ], "related": ["G110", "H76"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/bc659a/", "type": ["ACTRule", "TestCase"] } }, "QW_ACT_R5": { "name": "HTML page lang attribute has valid language tag", "code": "QW-ACT-R5", "mapping": "bf051a", "description": "This rule checks that the lang attribute of the root element of a non-embedded HTML page has a language tag with a known primary language subtag.", "metadata": { "target": { "element": "html", "attributes": ["lang"] }, "success-criteria": [ { "name": "3.1.1", "level": "A", "principle": "Understandable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/language-of-page", "url_tr": "https://www.w3.org/TR/WCAG21/#language-of-page" } ], "related": ["H57"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/bf051a/", "type": ["ACTRule", "TestCase"], "a11yReq": ["WCAG21:language"] } }, "QW_ACT_R6": { "name": "Image button has non-empty accessible name", "code": "QW-ACT-R6", "mapping": "59796f", "description": "This rule checks that each image button element has a non-empty accessible name.", "metadata": { "target": { "element": "input", "attributes": ["type='image'"] }, "success-criteria": [ { "name": "1.1.1", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/non-text-content", "url_tr": "https://www.w3.org/TR/WCAG21/#non-text-content" }, { "name": "4.1.2", "level": "A", "principle": "Robust", "url": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value", "url_tr": "https://www.w3.org/TR/WCAG21/#name-role-value" } ], "related": ["G94", "G95"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/59796f/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R7": { "name": "Orientation of the page is not restricted using CSS transform property", "code": "QW-ACT-R7", "mapping": "b33eff", "description": "This rule checks that page content is not restricted to either landscape or portrait orientation using CSS transform property.", "metadata": { "target": { "element": "*", "attributes": "transform" }, "success-criteria": [ { "name": "1.3.4", "level": "AA", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/orientation", "url_tr": "https://www.w3.org/TR/WCAG21/#orientation" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/b33eff/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R9": { "name": "Links with identical accessible names have equivalent purpose", "code": "QW-ACT-R9", "mapping": "b20e66", "description": "This rule checks that links with identical accessible names resolve to the same resource or equivalent resources.", "metadata": { "target": { "element": "a, [role='link']" }, "success-criteria": [ { "name": "2.4.9", "level": "AAA", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-link-only.html", "url_tr": "https://www.w3.org/TR/WCAG21/#link-purpose-link-only" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/b20e66/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R10": { "name": "Iframe elements with identical accessible names have equivalent purpose", "code": "QW-ACT-R10", "mapping": "4b1c6c", "description": "This rule checks that iframe elements with identical accessible names embed the same resource or equivalent resources.", "metadata": { "target": { "element": "iframe", "attributes": ["src"] }, "success-criteria": [ { "name": "4.1.2", "level": "A", "principle": "Robust", "url": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html", "url_tr": "https://www.w3.org/TR/WCAG21/#name-role-value" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/4b1c6c/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R11": { "name": "Button has non-empty accessible name", "code": "QW-ACT-R11", "mapping": "97a4e1", "description": "This rule checks that each button element has a non-empty accessible name.", "metadata": { "target": { "element": ["button", "input"], "attributes": ["role='button'"] }, "success-criteria": [ { "name": "4.1.2", "level": "A", "principle": "Robust", "url": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value", "url_tr": "https://www.w3.org/TR/WCAG21/#name-role-value" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/97a4e1/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R12": { "name": "Link has non-empty accessible name", "code": "QW-ACT-R12", "mapping": "c487ae", "description": "This rule checks that each link has a non-empty accessible name.", "metadata": { "target": { "element": ["a[href]", "area[href]"], "attributes": ["role='link'"] }, "success-criteria": [ { "name": "2.4.4", "level": "A", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-in-context", "url_tr": "https://www.w3.org/TR/WCAG21/#link-purpose-in-context" }, { "name": "2.4.9", "level": "AAA", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-link-only", "url_tr": "https://www.w3.org/TR/WCAG21/#link-purpose-link-only" }, { "name": "4.1.2", "level": "A", "principle": "Robust", "url": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value", "url_tr": "https://www.w3.org/TR/WCAG21/#name-role-value" } ], "related": ["G91"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/c487ae/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R13": { "name": "Element with aria-hidden has no content in sequential focus navigation", "code": "QW-ACT-R13", "mapping": "6cfa84", "description": "This rule checks that elements with an aria-hidden attribute do not contain elements that are part of the sequential focus navigation and focusable.", "metadata": { "target": { "element": "*", "attributes": ["aria-hidden='true'"] }, "success-criteria": [ { "name": "4.1.2", "level": "A", "principle": "Robust", "url": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value", "url_tr": "https://www.w3.org/TR/WCAG21/#name-role-value" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/6cfa84/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R14": { "name": "Meta viewport allows for zoom", "code": "QW-ACT-R14", "mapping": "b4f0c3", "description": "This rule checks that the meta element retains the user agent ability to zoom.", "metadata": { "target": { "element": "meta", "attributes": "name='viewport'" }, "success-criteria": [ { "name": "1.4.4", "level": "AA", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/resize-text", "url_tr": "https://www.w3.org/TR/WCAG21/#resize-text" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/b4f0c3/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R15": { "name": "Audio or video element avoids automatically playing audio", "code": "QW-ACT-R15", "mapping": "80f0bf", "description": "This rule checks that audio or video that plays automatically does not have audio that lasts for more than 3 seconds or has an audio control mechanism to stop or mute it.", "metadata": { "target": { "element": ["audio", "video"] }, "success-criteria": [ { "name": "1.4.2", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-dis-audio.html", "url_tr": "https://www.w3.org/TR/WCAG21/#audio-control" } ], "related": ["G60", "G170", "G171"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/80f0bf/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R16": { "name": "Form field has non-empty accessible name", "code": "QW-ACT-R16", "mapping": "e086e5", "description": "This rule checks that each form field element has a non-empty accessible name.", "metadata": { "target": { "element": ["input", "select", "textarea", "*[role]"] }, "success-criteria": [ { "name": "4.1.2", "level": "A", "principle": "Robust", "url": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value", "url_tr": "https://www.w3.org/TR/WCAG21/#name-role-value" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/e086e5/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R17": { "name": "Image has non-empty accessible name", "code": "QW-ACT-R17", "mapping": "23a2a8", "description": "This rule checks that each image either has a non-empty accessible name or is marked up as decorative.", "metadata": { "target": { "element": "img" }, "success-criteria": [ { "name": "1.1.1", "level": "A", "principle": "Understandable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html", "url_tr": "https://www.w3.org/TR/WCAG21/#non-text-content" } ], "related": ["G94", "G95"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/23a2a8/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R19": { "name": "Iframe element has non-empty accessible name", "code": "QW-ACT-R19", "mapping": "cae760", "description": "This rule checks that each iframe element has a non-empty accessible name.", "metadata": { "target": { "element": "iframe" }, "success-criteria": [ { "name": "4.1.2", "level": "A", "principle": "Robust", "url": "https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html", "url_tr": "https://www.w3.org/TR/WCAG21/#name-role-value" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/cae760/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R20": { "name": "Role attribute has valid value", "code": "QW-ACT-R20", "mapping": "674b10", "description": "This rule checks that each role attribute has a valid value.", "metadata": { "target": { "element": "*", "attributes": ["role"] }, "success-criteria": [], "related": ["ARIA4", "G108"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/674b10/", "type": ["ACTRule", "TestCase"], "a11yReq": ["WCAG21:language"] } }, "QW_ACT_R21": { "name": "SVG element with explicit role has non-empty accessible name", "code": "QW-ACT-R21", "mapping": "7d6734", "description": "This rule checks that each SVG image element that is explicitly included in the accessibility tree has a non-empty accessible name.", "metadata": { "target": { "element": "*" }, "success-criteria": [ { "name": "1.1.1", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html", "url_tr": "https://www.w3.org/TR/WCAG21/#non-text-content" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/7d6734/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R22": { "name": "Element with lang attribute has valid language tag", "code": "QW-ACT-R22", "mapping": "de46e4", "description": "This rule checks that a non-empty lang attribute of an element in the page has a language tag with a known primary language subtag.", "metadata": { "target": { "element": "body *", "attributes": ["lang"] }, "success-criteria": [ { "name": "3.1.2", "level": "AA", "principle": "Understandable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/language-of-parts", "url_tr": "https://www.w3.org/TR/WCAG21/#language-of-parts" } ], "related": ["H58"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/de46e4/", "type": ["ACTRule", "TestCase"], "a11yReq": ["WCAG21:language"] } }, "QW_ACT_R23": { "name": "Video element visual content has accessible alternative", "code": "QW-ACT-R23", "mapping": "c5a4ea", "description": "This rule checks that video elements with audio have an alternative for the video content as audio or as text.", "metadata": { "target": { "element": "video" }, "success-criteria": [ { "name": "1.2.3", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/audio-description-or-media-alternative-prerecorded.html", "url_tr": "https://www.w3.org/TR/WCAG21/#audio-description-or-media-alternative-prerecorded" } ], "related": ["G8", "G69", "G78", "G173"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/c5a4ea/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R24": { "name": "autocomplete attribute has valid value", "code": "QW-ACT-R24", "mapping": "73f2c2", "description": "This rule checks that the HTML autocomplete attribute has a correct value.", "metadata": { "target": { "element": "input[autocomplete], select[autocomplete], textarea[autocomplete]" }, "success-criteria": [ { "name": "1.3.5", "level": "AA", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/identify-input-purpose.html", "url_tr": "https://www.w3.org/TR/WCAG21/#identify-input-purpose" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/73f2c2/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R25": { "name": "ARIA state or property is permitted", "code": "QW-ACT-R25", "mapping": "5c01ea", "description": "This rule checks that WAI-ARIA states or properties are allowed for the element they are specified on.", "metadata": { "target": { "element": "*", "attributes": "aria-*" }, "success-criteria": [], "related": ["ARIA5"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/5c01ea/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R26": { "name": "Video element auditory content has accessible alternative", "code": "QW-ACT-R26", "mapping": "eac66b", "description": "This rule checks that video elements have an alternative for information conveyed through audio.", "metadata": { "target": { "element": "video" }, "success-criteria": [ { "name": "1.2.2", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/captions-prerecorded.html" } ], "related": ["G87", "G93", "H95"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/eac66b/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R27": { "name": "ARIA attribute is defined in WAI-ARIA", "code": "QW-ACT-R27", "mapping": "5f99a7", "description": "This rule checks that each aria- attribute specified is defined in ARIA 1.2.", "metadata": { "target": { "element": "*", "attributes": "aria-*" }, "success-criteria": [], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/5f99a7/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R28": { "name": "Element with role attribute has required states and properties", "code": "QW-ACT-R28", "mapping": "4e8ab6", "description": "This rule checks that elements that have an explicit role also specify all required states and properties.", "metadata": { "target": { "element": "*", "attributes": "role" }, "success-criteria": [], "related": ["ARIA5"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/4e8ab6/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R29": { "name": "Audio element content has text alternative", "code": "QW-ACT-R29", "mapping": "e7aa44", "description": "This rule checks that audio elements have a text alternative available.", "metadata": { "target": { "element": "*", "attributes": "role" }, "success-criteria": [ { "name": "1.2.1", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/audio-only-and-video-only-prerecorded", "url_tr": "https://www.w3.org/TR/WCAG21/#audio-only-and-video-only-prerecorded" } ], "related": ["G158"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/e7aa44/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R30": { "name": "Visible label is part of accessible name", "code": "QW-ACT-R30", "mapping": "2ee8b8", "description": "This rule checks that interactive elements labeled through content have their visible label as part of their accessible name.", "metadata": { "target": { "element": "*" }, "success-criteria": [ { "name": "2.5.3", "level": "A", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/label-in-name.html", "url_tr": "https://www.w3.org/TR/WCAG21/#label-in-name" } ], "related": ["G208"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/2ee8b8/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R31": { "name": "Video element visual-only content has accessible alternative", "code": "QW-ACT-R31", "mapping": "c3232f", "description": "This rule checks that video elements without audio have an alternative available.", "metadata": { "target": { "element": "video" }, "success-criteria": [ { "name": "1.2.1", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/audio-only-and-video-only-prerecorded", "url_tr": "https://www.w3.org/TR/WCAG21/#audio-only-and-video-only-prerecorded" } ], "related": ["G159", "G166"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/c3232f/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R32": { "name": "Video element visual content has strict accessible alternative", "code": "QW-ACT-R32", "mapping": "1ec09b", "description": "This rule checks that video elements with audio have audio description.", "metadata": { "target": { "element": "video" }, "success-criteria": [ { "name": "1.2.5", "level": "AA", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/audio-description-prerecorded.html", "url_tr": "https://www.w3.org/TR/WCAG21/#audio-description-prerecorded" } ], "related": ["G8", "G78", "G173"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/1ec09b/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R33": { "name": "ARIA required context role", "code": "QW-ACT-R33", "mapping": "ff89c9", "description": "This rule checks that an element with an explicit semantic role exists inside its required context.", "metadata": { "target": { "element": "*", "attributes": "role" }, "success-criteria": [ { "name": "1.3.1", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html", "url_tr": "https://www.w3.org/TR/WCAG21/#info-and-relationships" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/ff89c9/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R34": { "name": "ARIA state or property has valid value", "code": "QW-ACT-R34", "mapping": "6a7281", "description": "This rule checks that each ARIA state or property has a valid value type.", "metadata": { "target": { "element": "*", "attributes": "aria-*" }, "success-criteria": [], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/6a7281/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R35": { "name": "Heading has non-empty accessible name", "code": "QW-ACT-R35", "mapping": "ffd0e9", "description": "This rule checks that each heading has a non-empty accessible name.", "metadata": { "target": { "element": ["h1-h6", "*[role='heading']"] }, "success-criteria": [], "related": ["H42"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/ffd0e9/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R36": { "name": "headers attribute specified on a cell refers to cells in the same table element", "code": "QW-ACT-R36", "mapping": "a25f45", "description": "This rule checks that the headers attribute on a cell refer to other cells in the same table element.", "metadata": { "target": { "element": "table" }, "success-criteria": [ { "name": "1.3.1", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html", "url_tr": "https://www.w3.org/TR/WCAG21/#info-and-relationships" } ], "related": ["H43"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/a25f45/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R37": { "name": "Text has minimum contrast", "code": "QW-ACT-R37", "mapping": "afw4f7", "description": "This rule checks that the highest possible contrast of every text character with its background meets the minimal contrast requirement.", "metadata": { "target": { "element": ["*"] }, "success-criteria": [ { "name": "1.4.3", "level": "AA", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html", "url_tr": "https://www.w3.org/TR/WCAG21/#contrast-minimum" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/afw4f7/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R38": { "name": "ARIA required owned elements", "code": "QW-ACT-R38", "mapping": "bc4a75", "description": "This rule checks that an element with an explicit semantic role has at least one of its required owned elements.", "metadata": { "target": { "element": "*", "attributes": "role" }, "success-criteria": [ { "name": "1.3.1", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html", "url_tr": "https://www.w3.org/TR/WCAG21/#info-and-relationships" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/bc4a75/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R39": { "name": "Table header cell has assigned cells", "code": "QW-ACT-R39", "mapping": "d0f69e", "description": "This rule checks that each table header has assigned cells in a table element.", "metadata": { "target": { "element": ["th", "*[role='columnheader']", "*[role='rowheader']"] }, "success-criteria": [ { "name": "1.3.1", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html", "url_tr": "https://www.w3.org/TR/WCAG21/#info-and-relationships" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/d0f69e/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R40": { "name": "Zoomed text node is not clipped with CSS overflow", "code": "QW-ACT-R40", "mapping": "59br37", "description": "This rule checks that text nodes are not unintentionally clipped by overflow, when a page is zoomed to 200% on 1280 by 1024 viewport.", "metadata": { "target": { "element": "*:text()" }, "success-criteria": [ { "name": "1.4.4", "level": "AA", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/resize-text.html", "url_tr": "https://www.w3.org/TR/WCAG21/#resize-text" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/59br37/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R41": { "name": "Error message describes invalid form field value", "code": "QW-ACT-R41", "mapping": "36b590", "description": "This rule checks that text error messages provided when the user completes a form field with invalid values or using an invalid format, identify the cause of the error or how to fix the error.", "metadata": { "target": { "element": ["input", "select", "textarea", "*[role]"] }, "success-criteria": [ { "name": "3.3.1", "level": "A", "principle": "Understandable", "url": "https://www.w3.org/TR/WCAG21/#error-identification", "url_tr": "https://www.w3.org/TR/WCAG21/#error-identification" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/36b590/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R42": { "name": "Object element rendering non-text content has non-empty accessible name", "code": "QW-ACT-R42", "mapping": "8fc3b6", "description": "This rule checks that each object element rendering non-text content has a non-empty accessible name.", "metadata": { "target": { "element": ["object"] }, "success-criteria": [ { "name": "1.1.1", "level": "A", "principle": "Perceivable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html", "url_tr": "https://www.w3.org/TR/WCAG21/#non-text-content" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/8fc3b6/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R43": { "name": "Scrollable content can be reached with sequential focus navigation", "code": "QW-ACT-R43", "mapping": "0ssw9k", "description": "This rule checks that scrollable elements or their descendants can be reached with sequential focus navigation so that they can be scrolled by keyboard", "metadata": { "target": { "element": "*" }, "success-criteria": [ { "name": "2.1.1", "level": "A", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/keyboard.html", "url_tr": "https://www.w3.org/TR/WCAG21/#keyboard" }, { "name": "2.1.3", "level": "AAA", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/keyboard-no-exception.html", "url_tr": "https://www.w3.org/TR/WCAG21/#keyboard-no-exception" } ], "related": ["G202"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/0ssw9k/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R44": { "name": "Links with identical accessible names and same context serve equivalent purpose", "code": "QW-ACT-R44", "mapping": "fd3a94", "description": "This rule checks that links with identical accessible names in the same context resolve to the same or equivalent resources.", "metadata": { "target": { "element": "a, [role='link']" }, "success-criteria": [ { "name": "2.4.4", "level": "A", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/link-purpose-in-context.html", "url_tr": "https://www.w3.org/TR/WCAG21/#link-purpose-in-context" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/fd3a94/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R48": { "name": "Element marked as decorative is not exposed", "code": "QW-ACT-R48", "mapping": "46ca7f", "description": "This rule checks that elements marked as decorative either are not included in the accessibility tree, or have a presentational role.", "metadata": { "target": { "element": "[role='presentation'],[role='none'],[alt='']" }, "success-criteria": [], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/46ca7f/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R49": { "name": "Audio or video element that plays automatically has no audio that lasts more than 3 seconds", "code": "QW-ACT-R49", "mapping": "aaa1bf", "description": "audio or video that plays automatically does not output audio for more than 3 seconds.", "metadata": { "target": { "element": "audio, video" }, "success-criteria": [], "related": ["G60"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/aaa1bf/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R50": { "name": "Audio or video element that plays automatically has a control mechanism", "code": "QW-ACT-R50", "mapping": "4c31df", "description": "audio or video that plays automatically must have a control mechanism.", "metadata": { "target": { "element": "audio, video" }, "success-criteria": [], "related": ["G170"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/4c31df/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R51": { "name": "Video element visual-only content is media alternative for text", "code": "QW-ACT-R51", "mapping": "fd26cf", "description": "This rule checks non-streaming silent video is a media alternative for text on the page.", "metadata": { "target": { "element": "video" }, "success-criteria": [], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/fd26cf/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R53": { "name": "Video element visual-only content has transcript", "code": "QW-ACT-R53", "mapping": "ee13b5", "description": "Non-streaming video elements without audio must have all visual information available in a transcript.", "metadata": { "target": { "element": "video" }, "success-criteria": [], "related": ["G159"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/ee13b5/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R54": { "name": "Video element visual-only content has audio track alternative", "code": "QW-ACT-R54", "mapping": "d7ba54", "description": "Non-streaming video elements without audio must have an audio alternative.", "metadata": { "target": { "element": "video" }, "success-criteria": [], "related": ["G166"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/d7ba54/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R55": { "name": "Video element visual content has audio description", "code": "QW-ACT-R55", "mapping": "1ea59c", "description": "This rule checks that non-streaming video elements have all visual information also contained in the audio.", "metadata": { "target": { "element": "video" }, "success-criteria": [], "related": ["G8", "G78", "G173"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/1ea59c/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R56": { "name": "Video element content is media alternative for text", "code": "QW-ACT-R56", "mapping": "ab4d13", "description": "This rule checks non-streaming video is a media alternative for text on the page.", "metadata": { "target": { "element": "video" }, "success-criteria": [], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/ab4d13/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R58": { "name": "Audio element content has transcript", "code": "QW-ACT-R58", "mapping": "2eb176", "description": "This rule checks that audio elements have a transcript that includes all auditory information.", "metadata": { "target": { "element": "audio" }, "success-criteria": [], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/2eb176/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R59": { "name": "Audio element content is media alternative for text", "code": "QW-ACT-R59", "mapping": "afb423", "description": "This rule checks that the audio is a media alternative for text on the page.", "metadata": { "target": { "element": "audio" }, "success-criteria": [], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/afb423/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R60": { "name": "Video element auditory content has captions", "code": "QW-ACT-R60", "mapping": "f51b46", "description": "This rule checks that captions are available for audio information in non-streaming video elements.", "metadata": { "target": { "element": "video" }, "success-criteria": [], "related": ["G87", "G93", "H95"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/f51b46/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R61": { "name": "Audio and visuals of video element have transcript", "code": "QW-ACT-R61", "mapping": "1a02b0", "description": "This rule checks that non-streaming video elements have all audio and visual information available in a transcript.", "metadata": { "target": { "element": "video" }, "success-criteria": [ { "name": "1.2.8", "level": "AAA", "principle": "Perceivable", "url": "https://www.w3.org/TR/WCAG21/#media-alternative-prerecorded", "url_tr": "https://www.w3.org/TR/WCAG21/#media-alternative-prerecorded" } ], "related": ["G69"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/1a02b0/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R62": { "name": "Element in sequential focus order has visible focus", "code": "QW-ACT-R62", "mapping": "oj04fd", "description": "This rule checks that each element in sequential focus order has some visible focus indication.", "metadata": { "target": { "element": "*" }, "success-criteria": [ { "name": "2.4.7", "level": "AA", "principle": "Operable", "url": "https://www.w3.org/WAI/WCAG21/Understanding/focus-visible.html", "url_tr": "https://www.w3.org/TR/WCAG21/#focus-visible" } ], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/oj04fd/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R63": { "name": "Document has a landmark with non-repeated content", "code": "QW-ACT-R63", "mapping": "b40fd1", "description": "This rule checks that each page has an element with a landmark semantic role starting with non-repeated content", "metadata": { "target": { "element": "html" }, "success-criteria": [], "related": [], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/b40fd1/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R64": { "name": "Document has heading for non-repeated content", "code": "QW-ACT-R64", "mapping": "047fe0", "description": "This rule checks that the non-repeated content contains a heading", "metadata": { "target": { "element": "html" }, "success-criteria": [], "related": ["H69"], "url": "https://www.w3.org/WAI/standards-guidelines/act/rules/047fe0/", "type": ["ACTRule", "TestCase"], "a11yReq": [] } }, "QW_ACT_R65