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 で文字をドットで表示します。