Siteforce Edge 補正 — 5課題 検証フィクスチャ
🔴 未補正✅ Edge補正済み⚠️ 補正失敗🚫 構造的制約(補正不可)

課題 4: ページリロード時の未補正フラッシュ

DOM オーバーレイ型は HTML をそのまま返し、JS が後から補正を適用する。 リロード直後は補正前の状態が一瞬表示される(Flash of Unstyled Content)。 Edge 型は HTML 応答自体に補正が含まれるためフラッシュが発生しない。 これは Siteforce の構造的優位であり、「補正失敗」ケースは存在しない。

🔴 DOM オーバーレイ型(競合)JS 遅延補正 — フラッシュあり
🔴 補正待ち — 0ms 経過
<!-- オリジナル HTML(補正なし) --> <button style="color:#ccc">...</button> <!-- 600ms 後に overlay.js が DOM を書き換え --> <button style="color:#000">...</button> <!-- accessiBe 公式: "source code を変更しない, browser-level・async load で動作" -->

「リロードを再現」ボタンで Flash を繰り返し確認できる。 スクリーンリーダーは補正前の低コントラスト状態のテキストを読む可能性がある。

✅ Edge補正済み(Siteforce)HTML 応答に補正が含まれる — フラッシュなし
✅ HTML 到達時点で補正済み — 0ms でコントラスト合格
<!-- Edge が返す補正済み HTML --> <button style="color:#000000; background:#ffffff" data-siteforce="contrast-corrected" > ... </button> <!-- JS のロードを待たずに、初回ペイントから合格 -->

Edge がサーバーからの HTML 応答を書き換えて返すため、 ブラウザが最初にレンダリングする時点で補正済みの状態になる。 JS の実行を待つ必要がない。

✅ 補正失敗ケースなしSiteforce の構造的優位
HTML = 常に補正済み
/* なぜフラッシュが起きないか */ // DOM オーバーレイ型: // 1. ブラウザが未補正 HTML を受信 // 2. HTML がレンダリングされる(低コントラスト表示) // 3. overlay.js が実行される(遅延あり) // 4. DOM が書き換えられる // → 2〜3 の間がフラッシュ期間 // Edge 型 (Siteforce): // 1. Edge が HTML を補正して返す // 2. ブラウザが補正済み HTML を受信 // 3. 最初から正常コントラストで表示 // → フラッシュなし

課題4はアーキテクチャの違いによる構造的優位。 Edge 型では HTTP レスポンスの HTML 自体が「正解」のため、 どのタイミングでも補正失敗は発生しない。

結論: 課題4は Siteforce(Edge 型)が構造的に解決している(✅)。 accessiBe は公式に「async load・source code 無変更」と説明しており [CU-R22-002][CU-R22-003]、 Flash of Unstyled Content が構造的に発生する。 DOMオーバーレイ型で同課題を回避する方法は存在しない。