on master help sign in
Add playsinline attribute support for video/audio elements
127f12aiko
crates/htmlang-core/src/codegen.rs+3−1
@@ -1461,6 +1461,7 @@ const HTML_PASSTHROUGH_ATTRS: &[&str] = &[
1461 "autoplay",
1461 "autoplay",
1462 "loop",
1462 "loop",
1463 "muted",
1463 "muted",
1464+ "playsinline",
1464 "poster",
1465 "poster",
1465 "preload",
1466 "preload",
1466 // Image optimization
1467 // Image optimization
@@ -1515,6 +1516,7 @@ const BOOLEAN_HTML_ATTRS: &[&str] = &[
1515 "autoplay",
1516 "autoplay",
1516 "loop",
1517 "loop",
1517 "muted",
1518 "muted",
1519+ "playsinline",
1518 "open",
1520 "open",
1519 "novalidate",
1521 "novalidate",
1520 "autofocus",
1522 "autofocus",
@@ -3667,7 +3669,7 @@ fn attrs_to_css(
3667 "type" | "placeholder" | "name" | "value" | "disabled" | "required" | "checked"
3669 "type" | "placeholder" | "name" | "value" | "disabled" | "required" | "checked"
3668 | "for" | "action" | "method" | "autocomplete" | "min" | "max" | "step" | "pattern"
3670 | "for" | "action" | "method" | "autocomplete" | "min" | "max" | "step" | "pattern"
3669 | "maxlength" | "rows" | "cols" | "multiple" | "alt" | "role" | "tabindex"
3671 | "maxlength" | "rows" | "cols" | "multiple" | "alt" | "role" | "tabindex"
3670− | "title" | "controls" | "autoplay" | "loop" | "muted" | "poster" | "preload"
3672+ | "title" | "controls" | "autoplay" | "loop" | "muted" | "playsinline" | "poster" | "preload"
3671 | "loading" | "decoding" | "ordered" | "src" | "open" | "novalidate" | "low"
3673 | "loading" | "decoding" | "ordered" | "src" | "open" | "novalidate" | "low"
3672 | "high" | "optimum" | "colspan" | "rowspan" | "scope" | "inline" | "responsive"
3674 | "high" | "optimum" | "colspan" | "rowspan" | "scope" | "inline" | "responsive"
3673 | "datetime" | "media" | "sizes" | "srcset" | "cite" | "list" | "sandbox" | "allow"
3675 | "datetime" | "media" | "sizes" | "srcset" | "cite" | "list" | "sandbox" | "allow"
crates/htmlang-core/src/parser.rs+1−1
@@ -5209,7 +5209,7 @@ fn validate_tree(
5209 // Media-specific attributes only on @video/@audio
5209 // Media-specific attributes only on @video/@audio
5210 if matches!(
5210 if matches!(
5211 base,
5211 base,
5212− "controls" | "autoplay" | "loop" | "muted" | "poster" | "preload"
5212+ "controls" | "autoplay" | "loop" | "muted" | "playsinline" | "poster" | "preload"
5213 ) && !matches!(elem.kind, ElementKind::Video | ElementKind::Audio)
5213 ) && !matches!(elem.kind, ElementKind::Video | ElementKind::Audio)
5214 {
5214 {
5215 diagnostics.push(Diagnostic {
5215 diagnostics.push(Diagnostic {