スケルトンスクリーン

Skeleton screen

別名: スケルトンローディング、Skeleton loading、Content placeholder、プレースホルダー

生態(さわってみる)

一言定義

データ読み込み中に、実際のレイアウトの骨組みだけを先に表示しておく灰色のプレースホルダー。

分類

使う場面

  • 読み込み後のレイアウトがあらかじめわかっており、体感待ち時間を短く感じさせたいとき
  • カード一覧やフィード等、繰り返し構造のコンテンツを読み込むとき

避ける場面

  • 読み込み後のレイアウトが予測できない、または処理時間が非常に短いとき(→スピナー)
  • 進捗の割合そのものを正確に伝える必要があるとき(→プログレスバー)

近縁種との比較

スピナーは「まだ何もわからない」ことを示す抽象的な待機表示であるのに対し、スケルトンスクリーン は読み込み後のレイアウトの形をあらかじめ見せることで、次に何が来るかをユーザーに予告し体感速度を 向上させる。読み込みにかかる時間の割合を正確に伝えたい場合は数値ベースのプログレスバーが適する が、スケルトンスクリーンは所要時間の見積もりが難しい非同期処理(カード一覧の取得など)に向いて おり、繰り返し構造を持つコンテンツと特に相性がよい。

実例リンク

アクセシビリティ

role
読み込み中のコンテナに aria-busy="true"。完了したら aria-busy="false" にして実コンテンツと入れ替える
補足
Bootstrapのみ入力欄のplaceholder属性と紛らわしい「Placeholder」という用語を使う。スケルトン自体は装飾なので aria-hidden="true" にして読み上げないようにするのが定石