Skip to content

#63: Fix HTML5 validation issues#910

Open
masteradhoc wants to merge 1 commit into
WordPress:masterfrom
masteradhoc:63-valid-html-improvements
Open

#63: Fix HTML5 validation issues#910
masteradhoc wants to merge 1 commit into
WordPress:masterfrom
masteradhoc:63-valid-html-improvements

Conversation

@masteradhoc

@masteradhoc masteradhoc commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

What?

Fixes HTML5 validation issues.

Fixes #63.

Why?

The plugin's output contained several XHTML-isms and non-conforming patterns that fail HTML5 validation

How?

  • Remove XHTML-style self-closing void elements<input />, <img />, <br />, <hr /> → no trailing slash, across all provider and core files.
  • Remove XHTML-style boolean attributedisabled="disabled"disabled on the profile page fieldset.
  • Convert "Copy Codes" from <a> to <button> — the element has no URL destination; <a href="javascript:void(0);"> is non-conforming. The JS targets it by class so no JS changes needed.
  • Add href="#" to "Download Codes" <a> — HTML5 requires href when download is present. The JS sets the real data URI href after code generation; # is just a valid placeholder.
  • Remove duplicate inline <style> block — the block in class-two-factor-core.php was already moved to user-edit.css by Move class-two-factor-core.php login styles from inline to enqueued stylesheet #807, but was accidentally reintroduced by Move inline JS to external script files #814 while refactoring inline JS. This removes it again.

Note: type="text/javascript" and type="text/css" in includes/ are intentionally left — those files track WordPress Core.

Use of AI Tools

AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 4.8
Used for: Drafting the implementation and PR text. Code reviewed and edited by me.

Testing Instructions

  1. Log in as a user with 2FA enabled — verify the login form renders correctly for TOTP, Email, and Backup Codes providers.
  2. Visit your profile page — confirm the Two-Factor Options section displays and saves correctly, including enabling/disabling providers and setting a primary method.
  3. On the profile page, generate new backup codes — confirm the Copy and Download buttons work.
  4. Run the browser's HTML validator extension against the login page and profile page — no new errors should appear for any of the changed elements.

Screenshots or screencast

Before After

Changelog Entry

Fixed - Bring plugin HTML output into conformance with the HTML5 spec

@masteradhoc masteradhoc added this to the 0.17.0 milestone Jun 15, 2026
@masteradhoc masteradhoc self-assigned this Jun 15, 2026
@github-actions

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: masteradhoc <masteradhoc@git.wordpress.org>
Co-authored-by: kraftbj <kraftbj@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Code Preparation: HTML 5 validation

1 participant