Skip to content

Lint: HTML conformance/style fixes (2)#41771

Merged
Josh-Cena merged 3 commits intomdn:mainfrom
Josh-Cena:html-fix
Nov 3, 2025
Merged

Lint: HTML conformance/style fixes (2)#41771
Josh-Cena merged 3 commits intomdn:mainfrom
Josh-Cena:html-fix

Conversation

@Josh-Cena
Copy link
Copy Markdown
Member

Follow up of #41754.

  • Tag vue code blocks properly
  • Remove illicit <iframe> children; I know this is for fallback but there's no reason to care about lack of iframe support
  • Buttons and links should have accessible names
  • Images should have src
  • Fix invalid nesting, such as <menu> having non-li children
  • <map> need a name, and if it has an id they need to be equal. Also slightly updated the docs for HTMLImageElement.useMap to reflect this
  • id should be valid CSS identifiers
  • Fix a case where we do <legend role="button"> to use an actual button instead
  • Properly escape < and >; properly add trailing slashes for void elements
  • Boolean attributes have no value
  • Remove deprecated attributes
  • street-address is not a valid autocomplete token for <input>; replaced with <textarea>
  • Labels cannot label multiple controls: there are a few cases where we use the pattern <label for="a"><output></output></label><input id="a"> where we don't actually intend for the output to be a form control, so replaced it with <span> instead

@Josh-Cena Josh-Cena requested review from a team as code owners November 1, 2025 06:56
@Josh-Cena Josh-Cena requested review from chrisdavidmills, fred-wang, hamishwillee and wbamberg and removed request for a team November 1, 2025 06:56
@github-actions github-actions bot added Content:CSS Cascading Style Sheets docs Content:HTML Hypertext Markup Language docs Content:WebAPI Web API docs Content:JS JavaScript docs Content:Learn Learning area docs Content:HTTP HTTP docs Content:Media Media docs Content:MathML MathML docs labels Nov 1, 2025
@Josh-Cena Josh-Cena requested review from bsmth and sideshowbarker and removed request for a team, chrisdavidmills, fred-wang, hamishwillee and wbamberg November 1, 2025 06:57
@github-actions github-actions bot added the size/l [PR only] 501-1000 LoC changed label Nov 1, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Nov 1, 2025

Preview URLs (74 pages)
Flaws (347)

Note! 40 documents with no flaws that don't need to be listed. 🎉

URL: /en-US/docs/Learn_web_development/Core/Structuring_content/General_embedding_technologies
Title: From object to iframe — general embedding technologies
Flaw count: 2

  • broken_links:
    • /en-US/docs/Learn_web_development/Core/Structuring_content/ is a redirect
  • macros:
    • Can't resolve /en-US/curriculum/

URL: /en-US/docs/Web/API/HTMLImageElement
Title: HTMLImageElement
Flaw count: 2

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/text-align which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/border which is a redirect

URL: /en-US/docs/Web/CSS/@counter-style/system
Title: system
Flaw count: 6

  • broken_links:
    • /en-US/docs/Web/CSS/At-rule is a redirect
    • Can't resolve /en-US/docs/Web/CSS/counter-style-name
  • macros:
    • Macro produces link /en-US/docs/Web/CSS/list-style-type which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/list-style which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/list-style-image which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/list-style-position which is a redirect

URL: /en-US/docs/Web/CSS/@media/prefers-color-scheme
Title: prefers-color-scheme
Flaw count: 1

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/color-scheme which is a redirect

URL: /en-US/docs/Web/CSS/@scope
Title: @scope
Flaw count: 8

  • broken_links:
    • Can't resolve /en-US/docs/Web/CSS/scope-start
    • Can't resolve /en-US/docs/Web/CSS/scope-end
    • Can't resolve /en-US/docs/Web/CSS/block-contents
  • macros:
    • Macro produces link /en-US/docs/Web/CSS/color which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/font-family which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:scope which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:where which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:scope which is a redirect

URL: /en-US/docs/Web/CSS/CSS_containment/Container_size_and_style_queries
Title: Using container size and style queries
Flaw count: 19

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/container-type which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/container which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/container-name which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/container-name which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/container-name which is a redirect
    • and 14 more flaws omitted

URL: /en-US/docs/Web/CSS/CSS_counter_styles/Using_CSS_counters
Title: Using CSS counters
Flaw count: 25

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/counter-reset which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/counter-increment which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/counter-set which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/counter-reset which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/counter-increment which is a redirect
    • and 20 more flaws omitted

URL: /en-US/docs/Web/CSS/CSS_filter_effects/Using_filter_effects
Title: Using filter effects
Flaw count: 9

  • broken_links:
    • /en-US/docs/Web/CSS/:hover is a redirect
    • /en-US/docs/Web/CSS/:focus is a redirect
  • macros:
    • Macro produces link /en-US/docs/Web/CSS/filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/backdrop-filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/backdrop-filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/mask which is a redirect
    • and 2 more flaws omitted

URL: /en-US/docs/Web/CSS/CSS_fonts/OpenType_fonts_guide
Title: OpenType font features
Flaw count: 16

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/font-feature-settings which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/font-feature-settings which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/font-variation-settings which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/font-variant-east-asian which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/font-kerning which is a redirect
    • and 11 more flaws omitted

URL: /en-US/docs/Web/CSS/CSS_multicol_layout
Title: CSS multi-column layout
Flaw count: 25

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/column-fill which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/column-gap which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/column-span which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/column-rule which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/column-rule-color which is a redirect
    • and 20 more flaws omitted

URL: /en-US/docs/Web/CSS/CSS_overflow
Title: CSS overflow
Flaw count: 31

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/line-clamp which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/overflow which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/overflow-block which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/overflow-clip-margin which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/overflow-inline which is a redirect
    • and 26 more flaws omitted

URL: /en-US/docs/Web/CSS/CSS_transforms
Title: CSS transforms
Flaw count: 10

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/backface-visibility which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/perspective which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/perspective-origin which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/rotate which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/scale which is a redirect
    • and 5 more flaws omitted

URL: /en-US/docs/Web/CSS/filter-function/blur
Title: blur()
Flaw count: 2

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/backdrop-filter which is a redirect

URL: /en-US/docs/Web/CSS/filter-function/brightness
Title: brightness()
Flaw count: 2

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/backdrop-filter which is a redirect

URL: /en-US/docs/Web/CSS/filter-function/contrast
Title: contrast()
Flaw count: 4

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/backdrop-filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/backdrop-filter which is a redirect

URL: /en-US/docs/Web/CSS/filter-function/hue-rotate
Title: hue-rotate()
Flaw count: 3

  • broken_links:
    • Can't resolve /en-US/docs/Web/CSS/zero
  • macros:
    • Macro produces link /en-US/docs/Web/CSS/filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/backdrop-filter which is a redirect

URL: /en-US/docs/Web/CSS/filter-function/invert
Title: invert()
Flaw count: 2

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/filter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/backdrop-filter which is a redirect

URL: /en-US/docs/Web/CSS/Reference/Properties/accent-color
Title: accent-color
Flaw count: 10

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/color which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/background-color which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/border-color which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/caret-color which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/color which is a redirect
    • and 5 more flaws omitted

URL: /en-US/docs/Web/CSS/Reference/Properties/font
Title: font
Flaw count: 55

  • broken_links:
    • /en-US/docs/Web/CSS/font-style is a redirect
    • /en-US/docs/Web/CSS/font-weight is a redirect
    • /en-US/docs/Web/CSS/font-size is a redirect
    • /en-US/docs/Web/CSS/line-height is a redirect
    • /en-US/docs/Web/CSS/font-family is a redirect
  • macros:
    • Macro produces link /en-US/docs/Web/CSS/font-size-adjust which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/font-kerning which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/font-family which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/font-size which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/font-stretch which is a redirect
    • and 45 more flaws omitted

URL: /en-US/docs/Web/CSS/Reference/Properties/interactivity
Title: interactivity
Flaw count: 15

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/width which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/height which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/padding which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/overflow-x which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/display which is a redirect
    • and 10 more flaws omitted

URL: /en-US/docs/Web/CSS/Reference/Properties/list-style-type
Title: list-style-type
Flaw count: 9

  • broken_links:
    • Can't resolve /en-US/docs/Web/CSS/counter-style-name
    • /en-US/docs/Web/CSS/url is a redirect
    • /en-US/docs/Web/CSS/url is a redirect
    • Can't resolve /en-US/docs/Web/CSS/hash-token
  • macros:
    • Macro produces link /en-US/docs/Web/CSS/display which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/list-style which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/list-style-image which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/list-style-position which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/::marker which is a redirect

URL: /en-US/docs/Web/CSS/Reference/Properties/mask-repeat
Title: mask-repeat
Flaw count: 10

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/mask-position which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/mask-position which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/mask-position which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/mask-position which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/mask-image which is a redirect
    • and 5 more flaws omitted

URL: /en-US/docs/Web/CSS/Reference/Properties/quotes
Title: quotes
Flaw count: 5

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/content which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/::before which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/::after which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/contain which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/content which is a redirect

URL: /en-US/docs/Web/CSS/Reference/Properties/text-box-trim
Title: text-box-trim
Flaw count: 7

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/text-box-edge which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-box which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-box-edge which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-box-edge which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-box which is a redirect
    • and 2 more flaws omitted

URL: /en-US/docs/Web/CSS/Reference/Properties/text-transform
Title: text-transform
Flaw count: 3

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/::first-letter which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/::first-line which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/font-variant which is a redirect

URL: /en-US/docs/Web/CSS/Reference/Properties/text-wrap
Title: text-wrap
Flaw count: 10

  • broken_links:
    • /en-US/docs/Web/CSS/text-wrap-mode is a redirect
    • /en-US/docs/Web/CSS/text-wrap-style is a redirect
  • macros:
    • Macro produces link /en-US/docs/Web/CSS/text-wrap-mode which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-wrap-style which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-wrap-mode which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-wrap-style which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-wrap-mode which is a redirect
    • and 3 more flaws omitted

URL: /en-US/docs/Web/CSS/Reference/Properties/text-wrap-mode
Title: text-wrap-mode
Flaw count: 6

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/text-wrap which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/white-space which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/white-space-collapse which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/white-space which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-wrap which is a redirect
    • and 1 more flaws omitted

URL: /en-US/docs/Web/CSS/Reference/Properties/text-wrap-style
Title: text-wrap-style
Flaw count: 4

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/text-wrap which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-wrap-mode which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-wrap which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/text-wrap-mode which is a redirect

URL: /en-US/docs/Web/CSS/Reference/Selectors/:invalid
Title: :invalid
Flaw count: 7

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/box-shadow which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:user-invalid which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:required which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:optional which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:valid which is a redirect
    • and 2 more flaws omitted

URL: /en-US/docs/Web/CSS/Reference/Selectors/:placeholder-shown
Title: :placeholder-shown
Flaw count: 2

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/text-overflow which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/::placeholder which is a redirect

URL: /en-US/docs/Web/CSS/Reference/Selectors/:scope
Title: :scope
Flaw count: 2

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/:root which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:root which is a redirect

URL: /en-US/docs/Web/HTML/Reference/Attributes/readonly
Title: HTML attribute: readonly
Flaw count: 4

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/:read-write which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:read-only which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:read-only which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:read-write which is a redirect

URL: /en-US/docs/Web/HTML/Reference/Elements/input
Title: <input>: The HTML Input element
Flaw count: 28

  • macros:
    • Macro produces link /en-US/docs/Web/CSS/:enabled which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:disabled which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:read-only which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:read-write which is a redirect
    • Macro produces link /en-US/docs/Web/CSS/:placeholder-shown which is a redirect
    • and 23 more flaws omitted

URL: /en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/script-src-attr
Title: Content-Security-Policy: script-src-attr directive
Flaw count: 3

  • unknown:
    • No generic content config found
    • no blog root
    • no blog root
External URLs (14)

URL: /en-US/docs/Learn_web_development/Core/Structuring_content/General_embedding_technologies
Title: From object to iframe — general embedding technologies


URL: /en-US/docs/Web/CSS/@counter-style/system
Title: system


URL: /en-US/docs/Web/CSS/Reference/Properties/quotes
Title: quotes

(comment last updated: 2025-11-03 18:08:53)

@sideshowbarker sideshowbarker removed their request for review November 1, 2025 08:08
@Josh-Cena Josh-Cena changed the title HTML conformance/style fixes (2) Lint: HTML conformance/style fixes (2) Nov 2, 2025
Copy link
Copy Markdown
Contributor

@chrisdavidmills chrisdavidmills left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Josh-Cena; these changes largely make sense. I just had a few comments for you to consider, but I'll approve this so as not to hold you up.

Comment thread files/en-us/web/api/htmlformcontrolscollection/nameditem/index.md Outdated
Comment thread files/en-us/web/api/htmlformcontrolscollection/nameditem/index.md Outdated
Comment thread files/en-us/web/api/htmlimageelement/usemap/index.md
<iframe src="https://example.com" allow="geolocation"></iframe
></iframe>
<iframe src="https://example.com" allow="geolocation 'src'"></iframe>
<iframe src="https://example.com" allow="geolocation"></iframe>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that the nesting is a bit weird, but I'm not sure if this example is now equivalent to the previous one, as the preceding text says. Would it be better to include just the first iframe in the block?

Also maybe update the preceding text to "...so the following is equivalent:"?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is actually the originally intended meaning. Before #24058, the example was written without closing tags and Prettier gets confused. The original text also had two "elements" juxtaposed, and I believe the intention is clear enough: we are comparing two elements within one code block.

<iframe src="https://example.com" allow="geolocation 'src'">
<iframe src="https://example.com" allow="geolocation"></iframe
></iframe>
<iframe src="https://example.com" allow="geolocation 'src'"></iframe>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as for the Permissions Policy guide.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above ^

@bsmth bsmth removed their request for review November 3, 2025 09:52
@dipikabh
Copy link
Copy Markdown
Contributor

dipikabh commented Nov 3, 2025

Just a heads up - we'll most likely move the at-rule pages under css / reference tomorrow, so this PR might be impacted if it's not merged before then.

@Josh-Cena
Copy link
Copy Markdown
Member Author

Josh-Cena commented Nov 3, 2025

Thank for the heads up. I'm busy this morning but I'll get my recent PRs merged this afternoon.

@github-actions github-actions bot added the merge conflicts 🚧 [PR only] label Nov 3, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Nov 3, 2025

This pull request has merge conflicts that must be resolved before it can be merged.

Comment thread files/en-us/web/api/htmlformcontrolscollection/nameditem/index.md Outdated
Comment thread files/en-us/web/api/htmlimageelement/usemap/index.md
Comment thread files/en-us/web/api/htmlimageelement/usemap/index.md Outdated
@Josh-Cena
Copy link
Copy Markdown
Member Author

Thanks for the reviews @chrisdavidmills! A lot of these HTML errors are caused by the Prettier formatting, so I've just restored them to the intended, error-free meaning.

@Josh-Cena Josh-Cena merged commit aff319c into mdn:main Nov 3, 2025
8 checks passed
@Josh-Cena Josh-Cena deleted the html-fix branch November 3, 2025 18:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Content:CSS Cascading Style Sheets docs Content:HTML Hypertext Markup Language docs Content:HTTP HTTP docs Content:JS JavaScript docs Content:Learn Learning area docs Content:MathML MathML docs Content:Media Media docs Content:WebAPI Web API docs size/l [PR only] 501-1000 LoC changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants