query('//*[@accesskey]'); if ($elements === false || $elements->length === 0) { return []; } $keys = []; foreach ($elements as $el) { if (!$el instanceof DOMElement) { continue; } $val = trim($el->getAttribute('accesskey')); if ($val === '') { continue; } if (!isset($keys[$val])) { $keys[$val] = []; } $keys[$val][] = $el; } foreach ($keys as $key => $elementsWithKey) { if (count($elementsWithKey) > 1) { foreach ($elementsWithKey as $el) { $violations[] = $this->createViolation( "Duplicate accesskey=\"{$key}\" found. Access keys must be unique across the document.", $el, "Assign a unique accesskey to each interactive element, or avoid using accesskey entirely." ); } } } return $violations; } }