#63: Fix HTML5 validation issues#910
Conversation
|
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 If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message. To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
georgestephanis
left a comment
There was a problem hiding this comment.
Either changes or clarifications requested here --
Two buttons, both alike in dignity,
In fair WordPress, where we lay our scene,
- William Shakespeare, Romeo + Juliet (paraphrased)
| <a class="button button-two-factor-backup-codes-copy button-secondary hide-if-no-js" href="javascript:void(0);" id="two-factor-backup-codes-copy-link"><?php esc_html_e( 'Copy Codes', 'two-factor' ); ?></a> | ||
| <a class="button button-two-factor-backup-codes-download button-secondary hide-if-no-js" href="javascript:void(0);" id="two-factor-backup-codes-download-link" download="two-factor-backup-codes.txt"><?php esc_html_e( 'Download Codes', 'two-factor' ); ?></a> | ||
| <button type="button" class="button button-two-factor-backup-codes-copy button-secondary hide-if-no-js" id="two-factor-backup-codes-copy-link"><?php esc_html_e( 'Copy Codes', 'two-factor' ); ?></button> | ||
| <a class="button button-two-factor-backup-codes-download button-secondary hide-if-no-js" href="#" id="two-factor-backup-codes-download-link" download="two-factor-backup-codes.txt"><?php esc_html_e( 'Download Codes', 'two-factor' ); ?></a> |
There was a problem hiding this comment.
Why are we bumping one to button but not the other?
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?
<input />,<img />,<br />,<hr />→ no trailing slash, across all provider and core files.disabled="disabled"→disabledon the profile page fieldset.<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.href="#"to "Download Codes"<a>— HTML5 requireshrefwhendownloadis present. The JS sets the real data URI href after code generation;#is just a valid placeholder.<style>block — the block inclass-two-factor-core.phpwas already moved touser-edit.cssby 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"andtype="text/css"inincludes/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
Screenshots or screencast
Changelog Entry