回答編集履歴

2 記事の管理上、好ましくない

think49

think49 score 13650

2019/04/13 22:12  投稿

### ol要素
- [4.4.5 ol要素 - HTML Standard 日本語訳](https://momdo.github.io/html/grouping-content.html#the-ol-element)
> ol要素は、順序を変更することが文書の意味を変更するような、意図的に順序づけられた項目のリストを表す。
>
> ...(中略)...
>
> リストの順序を変更すると、どのように文書の意味が変化するかに注意する。次の例は、最初の2つの項目にある相対順序を変更することで、著者の故郷を変更している:
### 序列を定義する
> 現に、下記URLのようにolでマークアップされている方も存在します。
> https://gray-code.com/html_css/markup-to-date-and-time/amp
> 「数字を消しているならolの意味がない」と主張されている方もいますが、そのような制約は仕様に記述がありません。
それは論理構造を認識する上での「考え方」の一部であって仕様ではありません。
ol要素は序列を定義するわけですが、それはすなわち**順序に意味がある**という事であり、序列Noとしての「1. -> 2. -> 3.」が表出しても、論理構造上、問題ない必要があります。
(序列があるのですから、序列Noが表出して論理構造上、破綻するのはおかしいでしょう)
```HTML
<ol>
 <li>記事A</li>
 <li>記事B</li>
 <li>記事C</li>
</ol>
```
例えば、上記HTMLにおいて、次の全てを満たせるようなマークアップになっていますか。
- リストマーカーが出現したとしても、それは序列を表す数字として自然な表示である
- 記事の順序を逆順ソートした場合、リストマーカーである序列Noは記事に追従し、ナンバリングし直さない動作が正しい
teratailのように、記事Noとして、「1. -> 2. -> 3.」を定義しているのなら有とは思うのですが、ほとんどの場合はそういう管理の仕方にはなっていないので、article要素でマークアップするのが妥当なケースが多いように私は思います。
本記事を例にとるなら、次のようにマークアップする事は可能です。
```HTML
<ol>
 <li value="184261"><a href="https://teratail.com/questions/184261">JavaScript - 何故「ol」は最新記事に使われないのか|teratail</a></li>
</ol>
```
ol要素を親に持つli要素は、value属性によって序列Noを指定することが出来ます。
- [4.4.8 li要素 - HTML Standard 日本語訳](https://momdo.github.io/html/grouping-content.html#the-li-element)
Re: megu9859 さん
1 表現の修正

think49

think49 score 13650

2019/04/13 22:03  投稿

### ol要素
- [4.4.5 ol要素 - HTML Standard 日本語訳](https://momdo.github.io/html/grouping-content.html#the-ol-element)
> ol要素は、順序を変更することが文書の意味を変更するような、意図的に順序づけられた項目のリストを表す。
>  
> ...(中略)...
>  
> リストの順序を変更すると、どのように文書の意味が変化するかに注意する。次の例は、最初の2つの項目にある相対順序を変更することで、著者の故郷を変更している:
### 序列を定義する
> 現に、下記URLのようにolでマークアップされている方も存在します。
> https://gray-code.com/html_css/markup-to-date-and-time/amp
> 「数字を消しているならolの意味がない」と主張されている方もいますが、そのような制約は仕様に記述がありません。
それは論理構造を認識する上での「考え方」の一部であって仕様ではありません。
ol要素は序列を定義するわけですが、それはすなわち**順序に意味がある**という事であり、序列Noとしての「1. -> 2. -> 3.」が表出しても、論理構造上、問題ない必要があります。
(序列があるのですから、序列Noが表出して論理構造上、破綻するのはおかしいでしょう)
```HTML
<ol>
 <li>記事A</li>
 <li>記事B</li>
 <li>記事C</li>
</ol>
```
例えば、上記HTMLにおいて、次の全てを満たせるようなマークアップになっていますか。
- リストマーカーが出現したとしても、それは序列を表す数字として自然な表示である
- 最初の記事Aは最古の記事であり、最新の記事ではない(なぜなら、初めに最新の記事がある場合、最新記事が追加される度に序列が変化してしまう)
- 記事の順序を逆順ソートした時、リストマーカーである序列Noが逆転するのが正しい
- 記事の順序を逆順ソートした場合、リストマーカーである序列Noは記事に追従し、ナンバリングし直さない動作が正しい
teratailのように、記事Noとして、「1. -> 2. -> 3.」を定義しているのなら有とは思うのですが、ほとんどの場合はそういう管理の仕方にはなっていないので、article要素でマークアップするのが妥当なケースが多いように私は思います。
本記事を例にとるなら、次のようにマークアップする事は可能です。
```HTML
<ol>
 <li value="184261"><a href="https://teratail.com/questions/184261">JavaScript - 何故「ol」は最新記事に使われないのか|teratail</a></li>
</ol>
```
ol要素を親に持つli要素は、value属性によって序列Noを指定することが出来ます。
- [4.4.8 li要素 - HTML Standard 日本語訳](https://momdo.github.io/html/grouping-content.html#the-li-element)
Re: megu9859 さん

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る