+6
-11
lib/html5rw/dom/dom_serialize.ml
+6
-11
lib/html5rw/dom/dom_serialize.ml
···
64
64
) value;
65
65
not !invalid
66
66
67
-
(* Serialize start tag *)
67
+
(* Serialize start tag - per WHATWG spec, attribute values must be quoted *)
68
68
let serialize_start_tag name attrs =
69
69
let buf = Buffer.create 64 in
70
70
Buffer.add_char buf '<';
···
73
73
Buffer.add_char buf ' ';
74
74
Buffer.add_string buf key;
75
75
if value <> "" then begin
76
-
if can_unquote_attr_value value then begin
77
-
Buffer.add_char buf '=';
78
-
Buffer.add_string buf (escape_attr_value value '"')
79
-
end else begin
80
-
let quote = choose_attr_quote value in
81
-
Buffer.add_char buf '=';
82
-
Buffer.add_char buf quote;
83
-
Buffer.add_string buf (escape_attr_value value quote);
84
-
Buffer.add_char buf quote
85
-
end
76
+
(* WHATWG serialization algorithm requires double quotes around values *)
77
+
Buffer.add_char buf '=';
78
+
Buffer.add_char buf '"';
79
+
Buffer.add_string buf (escape_attr_value value '"');
80
+
Buffer.add_char buf '"'
86
81
end
87
82
) attrs;
88
83
Buffer.add_char buf '>';