tagName) === 'img') { return null; // Handled by ImgAltText } $roles = explode(' ', strtolower(trim($element->getAttribute('role')))); if (!in_array('img', $roles, true)) { return null; } if ($element->getAttribute('aria-hidden') === 'true') { return null; } $ariaLabel = trim($element->getAttribute('aria-label')); $ariaLabelledby = trim($element->getAttribute('aria-labelledby')); $title = trim($element->getAttribute('title')); $text = trim($element->textContent); if ($ariaLabel !== '' || $ariaLabelledby !== '' || $title !== '' || $text !== '') { return null; } return $this->createViolation( $element, "Element with role=\"img\" (<{$element->tagName}>) does not have an accessible name.", "Provide an accessible description using aria-label, aria-labelledby, or title, or hide it if decorative using aria-hidden=\"true\"." ); } }