*/ public function validate(Theme $theme): array { $issues = []; foreach ($this->files->allFiles($theme->path().'/views') as $file) { $content = $file->getContents(); $relative = $file->getRelativePathname(); if (preg_match_all('/]*\balt=)[^>]*>/i', $content, $matches)) { $issues[] = ['severity' => 'error', 'message' => count($matches[0]).' 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]; } if (preg_match_all('/]*>\s*(?:<[^>]+>\s*)*<\/button>/is', $content, $matches)) { $issues[] = ['severity' => 'warning', 'message' => count($matches[0]).' button(s) may lack an accessible name.', 'file' => $relative]; } } return $issues; } }