element must not contain more than one
element.'; }
public function getStandard(): WCAGStandard { return WCAGStandard::A; }
public function getSeverity(): Severity { return Severity::ERROR; }
public function getLevel(): int { return 2; }
public function check(DOMElement $element): ?Violation
{
if (strtolower($element->tagName) !== 'table') {
return null;
}
$captionCount = 0;
foreach ($element->childNodes as $child) {
if ($child instanceof DOMElement && strtolower($child->tagName) === 'caption') {
$captionCount++;
}
}
if ($captionCount > 1) {
return $this->createViolation(
$element,
$this->getDescription(),
'Remove duplicate elements so that the table has at most one caption.'
);
}
return null;
}
}