Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions lib/checks/generic/page-no-duplicate-evaluate.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ function pageNoDuplicateEvaluate(node, options, virtualNode) {
if (typeof options.nativeScopeFilter === 'string') {
elms = elms.filter(elm => {
return (
elm.actualNode.hasAttribute('role') ||
!findUpVirtual(elm, options.nativeScopeFilter)
elm.hasAttr('role') || !findUpVirtual(elm, options.nativeScopeFilter)
);
});
}
Expand Down
4 changes: 2 additions & 2 deletions lib/checks/label/help-same-as-label-evaluate.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { idrefs } from '../../commons/dom';

function helpSameAsLabelEvaluate(node, options, virtualNode) {
const labelText = labelVirtual(virtualNode);
let check = node.getAttribute('title');
let check = virtualNode.attr('title');

if (!labelText) {
return false;
Expand All @@ -12,7 +12,7 @@ function helpSameAsLabelEvaluate(node, options, virtualNode) {
if (!check) {
check = '';

if (node.getAttribute('aria-describedby')) {
if (virtualNode.attr('aria-describedby')) {
const ref = idrefs(node, 'aria-describedby');
check = ref
.map(thing => {
Expand Down
2 changes: 1 addition & 1 deletion lib/checks/label/hidden-explicit-label-evaluate.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ function hiddenExplicitLabelEvaluate(node, options, virtualNode) {
}

const root = getRootNode(node);
const id = escapeSelector(node.getAttribute('id'));
const id = escapeSelector(virtualNode.attr('id'));
const label = root.querySelector(`label[for="${id}"]`);

if (label && !isVisibleToScreenReaders(label)) {
Expand Down
4 changes: 2 additions & 2 deletions lib/checks/label/multiple-label-evaluate.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import {
} from '../../commons/dom';
import { escapeSelector } from '../../core/utils';

function multipleLabelEvaluate(node) {
const id = escapeSelector(node.getAttribute('id'));
function multipleLabelEvaluate(node, options, virtualNode) {
const id = escapeSelector(virtualNode.attr('id'));
let parent = node.parentNode;
let root = getRootNode(node);
root = root.documentElement || root;
Expand Down
4 changes: 2 additions & 2 deletions lib/checks/parsing/duplicate-id-evaluate.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { getRootNode } from '../../commons/dom';
import { escapeSelector } from '../../core/utils';

function duplicateIdEvaluate(node) {
const id = node.getAttribute('id').trim();
function duplicateIdEvaluate(node, options, virtualNode) {
const id = virtualNode.attr('id').trim();
// Since empty ID's are not meaningful and are ignored by Edge, we'll
// let those pass.
if (!id) {
Expand Down
4 changes: 2 additions & 2 deletions lib/checks/tables/scope-value-evaluate.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
function scopeValueEvaluate(node, options) {
const value = node.getAttribute('scope').toLowerCase();
function scopeValueEvaluate(node, options, virtualNode) {
const value = virtualNode.attr('scope').toLowerCase();

return options.values.indexOf(value) !== -1;
}
Expand Down
4 changes: 2 additions & 2 deletions lib/rules/duplicate-id-active-matches.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { getRootNode, isFocusable } from '../commons/dom';
import { isAccessibleRef } from '../commons/aria';
import { escapeSelector } from '../core/utils';

function duplicateIdActiveMatches(node) {
const id = node.getAttribute('id').trim();
function duplicateIdActiveMatches(node, virtualNode) {
const id = virtualNode.attr('id').trim();
const idSelector = `*[id="${escapeSelector(id)}"]`;
const idMatchingElms = Array.from(
getRootNode(node).querySelectorAll(idSelector)
Expand Down
4 changes: 2 additions & 2 deletions lib/rules/duplicate-id-misc-matches.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { getRootNode, isFocusable } from '../commons/dom';
import { isAccessibleRef } from '../commons/aria';
import { escapeSelector } from '../core/utils';

function duplicateIdMiscMatches(node) {
const id = node.getAttribute('id').trim();
function duplicateIdMiscMatches(node, virtualNode) {
const id = virtualNode.attr('id').trim();
const idSelector = `*[id="${escapeSelector(id)}"]`;
const idMatchingElms = Array.from(
getRootNode(node).querySelectorAll(idSelector)
Expand Down
4 changes: 2 additions & 2 deletions lib/rules/frame-title-has-text-matches.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { sanitize } from '../commons/text';

function frameTitleHasTextMatches(node) {
const title = node.getAttribute('title');
function frameTitleHasTextMatches(node, virtualNode) {
const title = virtualNode.attr('title');
return !!sanitize(title);
}

Expand Down
3 changes: 2 additions & 1 deletion lib/rules/landmark-has-body-context-matches.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ function landmarkHasBodyContextMatches(node, virtualNode) {
// Filter elements that, within certain contexts, don't map their role.
// e.g. a <header> inside a <main> is not a banner, but in the <body> context it is
return (
node.hasAttribute('role') || !findUpVirtual(virtualNode, nativeScopeFilter)
virtualNode.hasAttr('role') ||
!findUpVirtual(virtualNode, nativeScopeFilter)
);
}

Expand Down
6 changes: 3 additions & 3 deletions lib/rules/xml-lang-mismatch-matches.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { getBaseLang, isValidLang } from '../core/utils';

function xmlLangMismatchMatches(node) {
function xmlLangMismatchMatches(node, virtualNode) {
// using -> "selector": "html[lang][xml\\:lang]" to narrow down html with lang and xml:lang attributes

// get primary base language for each of the attributes
const primaryLangValue = getBaseLang(node.getAttribute('lang'));
const primaryXmlLangValue = getBaseLang(node.getAttribute('xml:lang'));
const primaryLangValue = getBaseLang(virtualNode.attr('lang'));
const primaryXmlLangValue = getBaseLang(virtualNode.attr('xml:lang'));

// ensure that the value specified is valid lang for both `lang` and `xml:lang`
return isValidLang(primaryLangValue) && isValidLang(primaryXmlLangValue);
Expand Down
Loading
Loading