on master help sign in
Add playsinline attribute support for video/audio elements
commit127f12a6148cdcd6a16472c86a38a58114d4d6fa authoriko <mail@iko.soy> dateSat 25 Apr 2026, 15:18 (5 months ago) parent077590a
2 files changed+4−2
crates/htmlang-core/src/codegen.rs+3−1 crates/htmlang-core/src/parser.rs+1−1
crates/htmlang-core/src/codegen.rs+3−1
@@ -1461,6 +1461,7 @@ const HTML_PASSTHROUGH_ATTRS: &[&str] = &[
14611461 "autoplay",
14621462 "loop",
14631463 "muted",
1464+ "playsinline",
14641465 "poster",
14651466 "preload",
14661467 // Image optimization
@@ -1515,6 +1516,7 @@ const BOOLEAN_HTML_ATTRS: &[&str] = &[
15151516 "autoplay",
15161517 "loop",
15171518 "muted",
1519+ "playsinline",
15181520 "open",
15191521 "novalidate",
15201522 "autofocus",
@@ -3667,7 +3669,7 @@ fn attrs_to_css(
36673669 "type" | "placeholder" | "name" | "value" | "disabled" | "required" | "checked"
36683670 | "for" | "action" | "method" | "autocomplete" | "min" | "max" | "step" | "pattern"
36693671 | "maxlength" | "rows" | "cols" | "multiple" | "alt" | "role" | "tabindex"
3670− | "title" | "controls" | "autoplay" | "loop" | "muted" | "poster" | "preload"
3672+ | "title" | "controls" | "autoplay" | "loop" | "muted" | "playsinline" | "poster" | "preload"
36713673 | "loading" | "decoding" | "ordered" | "src" | "open" | "novalidate" | "low"
36723674 | "high" | "optimum" | "colspan" | "rowspan" | "scope" | "inline" | "responsive"
36733675 | "datetime" | "media" | "sizes" | "srcset" | "cite" | "list" | "sandbox" | "allow"
crates/htmlang-core/src/parser.rs+1−1
@@ -5209,7 +5209,7 @@ fn validate_tree(
52095209 // Media-specific attributes only on @video/@audio
52105210 if matches!(
52115211 base,
5212− "controls" | "autoplay" | "loop" | "muted" | "poster" | "preload"
5212+ "controls" | "autoplay" | "loop" | "muted" | "playsinline" | "poster" | "preload"
52135213 ) && !matches!(elem.kind, ElementKind::Video | ElementKind::Audio)
52145214 {
52155215 diagnostics.push(Diagnostic {