*/
public function validate(Theme $theme): array
{
$issues = [];
foreach ($this->files->allFiles($theme->path().'/views') as $file) {
$content = $file->getContents();
$relative = $file->getRelativePathname();
$missingAlt = 0;
if (preg_match_all('/
])*>/is', $content, $images)) {
foreach ($images[0] as $image) {
if (! preg_match('/\\balt\\s*=\\s*(?:"[^"]*"|\'[^\']*\')/is', $image)) {
$missingAlt++;
}
}
}
if ($missingAlt > 0) {
$issues[] = [
'severity' => 'error',
'message' => $missingAlt.' image(s) missing alt text.',
'file' => $relative,
];
}
if (preg_match('/]*\\blang=)/i', $content)) {
$issues[] = [
'severity' => 'warning',
'message' => 'HTML element is missing a lang attribute.',
'file' => $relative,
];
}
$unnamedButtons = 0;
if (preg_match_all('/