-11
lib/html5_checker/checker_registry.ml
-11
lib/html5_checker/checker_registry.ml
···
6
6
7
7
let default () =
8
8
let reg = create () in
9
-
(* Register built-in checkers that align with Nu validator behavior.
10
-
Some checkers are disabled because they produce messages that don't
11
-
match Nu validator's expected output or have too many false positives:
12
-
- content: has bugs with phrasing content text detection
13
-
- heading: generates warnings Nu validator doesn't produce
14
-
- language: generates warnings Nu validator doesn't produce
15
-
- microdata: Nu validator has different microdata rules
16
-
- table: produces different messages than Nu validator
17
-
*)
18
9
Hashtbl.replace reg "nesting" Nesting_checker.checker;
19
10
Hashtbl.replace reg "obsolete" Obsolete_checker.checker;
20
11
Hashtbl.replace reg "id" Id_checker.checker;
···
45
36
Hashtbl.replace reg "xhtml-content" Xhtml_content_checker.checker;
46
37
Hashtbl.replace reg "lang-detecting" Lang_detecting_checker.checker;
47
38
Hashtbl.replace reg "unknown-element" Unknown_element_checker.checker;
48
-
(* Hashtbl.replace reg "heading" Heading_checker.checker; *)
49
-
(* Hashtbl.replace reg "content" Content_checker.checker; *)
50
39
reg
51
40
52
41
let register registry name checker = Hashtbl.replace registry name checker
-20
lib/html5_checker/specialized/aria_checker.ml
-20
lib/html5_checker/specialized/aria_checker.ml
···
159
159
Hashtbl.add tbl "ul" "list";
160
160
tbl
161
161
162
-
(** Map from HTML element name to multiple possible implicit roles.
163
-
164
-
Some elements like 'th' can have different implicit roles depending
165
-
on context (columnheader or rowheader). *)
166
-
let elements_with_implicit_roles : (string, string array) Hashtbl.t =
167
-
let tbl = Hashtbl.create 4 in
168
-
Hashtbl.add tbl "th" [| "columnheader"; "rowheader" |];
169
-
tbl
170
-
171
162
(** Map from input type to implicit ARIA role. *)
172
163
let input_types_with_implicit_role : (string, string) Hashtbl.t =
173
164
let tbl = Hashtbl.create 8 in
···
355
346
end
356
347
else
357
348
Hashtbl.find_opt elements_with_implicit_role element_name
358
-
359
-
(** Get all possible implicit roles for an element (for elements like 'th').
360
-
361
-
Note: This function is not currently used but is provided for completeness. *)
362
-
let _get_implicit_roles element_name =
363
-
match Hashtbl.find_opt elements_with_implicit_roles element_name with
364
-
| Some roles -> Array.to_list roles
365
-
| None ->
366
-
match get_implicit_role element_name [] with
367
-
| Some role -> [role]
368
-
| None -> []
369
349
370
350
(** Stack node representing an element in the ancestor chain. *)
371
351
type stack_node = {