【CSS】reading-flowプロパティで読み上げ順を制御する

どうも、くまだです。

CSSのreading-flowプロパティについて。

reading-flowプロパティで読み上げ順を制御

reading-flowプロパティとは、reading-flowを指定した要素内の読み上げ順やフォーカス順を制御するプロパティです。

コードは以下になります。

  <div class="container">
    <button class="box">1</button>
    <button class="box">2</button>
    <button class="box">3</button>
  </div>

.container {
    padding: 200px;
    display: flex;
    gap: 10px;
    reading-flow: flex-visual;
}

.box {
    background-color: orange;
    width: 100px;
    height: 100px;
}

.box:nth-child(1){
    order: 2;
}

HTMLでは1→2→3の順ですが、CSSのorderプロパティで順番を変えています。

reading-flow:  flex-visual;を指定すると、writing-modeに従い、見た目通りの順番になります。フォーカスを当てると、見た目通り2→3→1になります。

デフォルトがreading-flow:nomarl;で、この場合は1→2→3の順にフォーカスが当たります。

flexboxを使用する場合は以下のものが使用できます。

  • flex-visual:writing-modeに従い、見た目通りの順序に従う。
  • flex-flow:flex-flowプロパティに従う。

Gridレイアウトの場合でも使用できます。

  <div class="container">
    <button class="box">1</button>
    <button class="box">2</button>
    <button class="box">3</button>
    <button class="box">4</button>
    <button class="box">5</button>
    <button class="box">6</button>
  </div>
.container {
    padding: 200px;
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, 1fr);
    reading-flow: grid-order;
}

.box {
    background-color: orange;
    width: 100px;
    height: 100px;
}

.box:nth-child(1) {
    order: 2;
}
.box:nth-child(5) {
    order: 4;
}

reading-flow: grid-order;を指定するとorder順になるので、2→3→4→6→1→5になります。

Gridを使用する場合は以下のものが使用できます。

  • grid-rows:writing-modeに従い、行の見た目通りの順序に従う。
  • grid-column:writing-modeに従い、列の見た目通りの順序に従う。
  • grid-order:orderプロパティで変更された順に従う。

2025年7月時点ではChromeとEdgeで使えます。

ここまで読んでくださりありがとうございました。

この記事を書いた人