engine = $engine ?? new RuleEngine(); } public function addRule(mixed $rule): void { $this->engine->addRule($rule); } /** * Scan HTML content for accessibility violations. * * @param string $html * @return Violation[] */ public function scan(string $html): array { if (empty(trim($html))) { return []; } $html5 = new \Masterminds\HTML5([ 'disable_html_ns' => true, ]); $doc = $html5->loadHTML($html); return $this->engine->run($doc); } }