OTP 入力はマスが並んでいるように見えますが、実体は1つのネイティブの <input> です。SMS の自動入力(autocomplete="one-time-code")、貼り付け、パスワードマネージャー、フォーム、スクリーンリーダーからは、ごく普通のテキストフィールドに見えます。

貼り付けたコードは整形されるため、「123-456」でも「123 456」でも入力でき、パターンで許可されていない文字は受け付けません。Android では、webOtp が SMS の到着と同時にコードを入力します。

認証

最後のマスが埋まると (completed) が発火します。コードを受け付けないときは、入力に aria-invalid を設定します。マスが赤くなって揺れます。

Try 123456, or anything else.

英字、グループ、マスク表示

pattern="alphanumeric" で英字も入力でき、[groups] で区切りを追加し、masked で文字をドットで表示します。