AI に銀行の振込フローを作らせてみた — 業界特有の画面が、2回前のフォームに隠れていたアクセシビリティ・バグを炙り出した(やってみた #32)
/transfer375px のビューポートで撮影。縦長のページはフレーム内をスクロールします。
解説記事
AI に銀行の振込フローを作らせてみた — 業界特有の画面が、2回前のフォームに隠れていたアクセシビリティ・バグを炙り出した(やってみた #32)
やってみたシリーズ: 自作のデザインシステム
@gunjo/ui(群青)を、群青のことを一度も見たことのない AI に、実際の画面で組ませていく連載。今回は読者の発案で 業界特有の画面 = 日本のネットバンキングの振込フロー(振込元口座→振込先→金額→確認→本人確認→結果)。
条件はいつも通り(出荷している npm パッケージ+docs サイトだけ。ソース非公開)。金額の桁区切り・口座番号の伏せ字・残高不足チェック・本人確認…金融特有の制約は、汎用の画面では当たりません。
結果 — 4/5
tsc/build 緑・console 0・375px とデスクトップで検証済み・全フィールドのエラーが aria で連携。
この回の主役 — 厳格な金融フォームが、隠れていたアクセシビリティ・バグを暴いた
#29→#30 で作り込んだフォームの仕組み(FormField/FormControl が id/aria を自動で配線)は、#30 の予備知識ゼロの AI に「本物」と認定されました。その2回あと、銀行フォームで実バグが出ました:
🔴
FormControlが、FormDescriptionの無いフィールドにもaria-describedby="…-description"を差し込んでいた — 存在しない id を指している。axe(アクセシビリティ検査)が弾く ARIA バグだ。
振込フォームには 説明文の無いフィールド(銀行名・支店名・口座種別)が大量にあります。説明文を毎フィールドに付ける汎用デモでは絶対に出ない不備が、金融という業界特有の「説明の無い項目だらけ」の画面で、初めて露出しました。
直し(#175・同じ PR で反映)
FormField が、子に FormDescription が在るかを見て、在るときだけ description の id を予約するように。無ければ状態共有は undefined = FormControl が落とす。描画時に決めるので、サーバー側描画(SSR/hydration)でも安全。ブラウザで実証: docs の説明の無い3コントロールが aria-describedby: null(宙ぶらりんの参照ゼロ)に。
「業界特有」は別の層の欠落を出す
読者の直感どおりでした。汎用の画面(設定・EC・ダッシュボード)では出なかった欠落が、銀行フォームで噴き出しました:
- 🟠 金額入力のコンポーネントが無い —
NumberInputは<input type=number>なので1,000,000(桁区切り)を表現できない。¥の接頭辞も地域設定も無し。EC/請求/銀行のすべての画面の主役なのに手組み(#176・最大の欠落・Codex)。 - 🟠 伏せ字表示(
普通 ****1234)のコンポーネント無し(#177)/確認まとめのDescriptionList無し(#178)。 - 🟠 Stepper が操作できない(#157 を再確認)/検証の状態層が無い(#166 を再確認)。
それでも土台は強い — 複利は続く
予備知識ゼロの AI が名指しで褒めたのは、また前ラウンドまでの修正でした:
- Form/FormField が白眉:「配線されたフィールドに手書きの aria はゼロ。4つの invalid が、各
role=alertに describedby でつながる」。 - Select label(#164)・RadioGroupItem label(#162)・CardTitle/AlertTitle
as(#116/#163)・StatusScreen headingLevel(#104)・PasswordInput(PIN をアクセシビリティのツリーに漏らさない) を全部称賛。 - ダークも自動で反転(
bg-card白→rgb(2,8,23))。
学び
汎用デモ: 全フィールドに説明文 → バグは隠れたまま
業界特有(銀行): 説明の無い項目だらけ → 隠れバグが露出
「使う業界」を変えると、コードの別の面が試されます。 まとめ記事の主張「難しい2割を担保する」を、断定ではなくこうして1つずつ実証していきます。
次回予告(やってみた #33)
- 保険/医療フォーム / 物流トラッキング / POS など別の業界。業界を変えるほど欠落が出る。
試す
まだ alpha。業界を変えたら、隠れていたバグが出た回。
この連載は、作者が AI(Claude と Codex)と協働で制作しています。実験・検証の設計、判断、公開前の事実確認は人間が行い、実作業と下書き執筆は AI が担っています。
使用した @gunjo/ui コンポーネント
この画面のソースが直接 import しているコンポーネントです。
cold AI が組み上げた実コード
ファイル名をクリックでソースを展開できます。