* li 要素型 (HTML, XHTML 1)

[3] [DFN[[CODE(HTMLe)[li]] 要素]]は、[[並び]]の項目を表します。

仕様書: [HTML 4]
<IW:HTML4:"struct/lists.html#edef-LI">

[4]
:[[開始タグ]]:必須
:[[終了タグ]] (HTML 4):省略可能
:終了タグ (XHTML 1):必須
:[[内容模型]] (HTML 4 の [CODE(HTMLe)[ul]], [CODE(HTMLe)[ol]]):[CODE(SGML)[(%[[flow]];)*]]
:[[内容模型]] (HTML 4 の [CODE(HTMLe)[dir]], [CODE(HTMLe)[menu]]):[CODE(SGML)[(%[[inline]];)*]]
:出現できる文脈:[CODE(HTMLe)[[[ol]]]], [CODE(HTMLe)[[[ul]]]],
[CODE(HTMLe)[[[dir]]]], [CODE(HTMLe)[[[menu]]]] の直下
:[[属性]]:
,[CODE(HTMLa)[[[class]]]]	,	,	,[[級]]	,[HTML4] %[[coreattr]]
,[CODE(HTMLa)[[[dir]]]]	,	,	,[[書字方向]]	,[HTML4] %[[i18n]]
,[CODE(HTMLa)[[[id]]]]	,	,	,一意識別子	,[HTML4] %coreattr
,[CODE(HTMLa)[[[lang]]]]	,	,	,[[自然言語]]	,[HTML4] %i18n
,[CODE(HTMLa)[[[xml]]:lang]]	,	,	,自然言語	,[XHTML1]
,[CODE(HTMLa)[[[onclick]]]]	,	,	,	,[HTML4] %[[events]]
,[CODE(HTMLa)[[[ondblclick]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onkeydown]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onkeypress]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onkeyup]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmousedown]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmousemove]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmouseout]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmouseover]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmouseup]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[style]]]]	,	,	,スタイル情報	,[HTML4] %coreattr
,[CODE(HTMLa)[[[title]]]]	,	,	,注釈的題	,[HTML4] %coreattr
,[CODE(HTMLa)[[[type]]]]	,"[CODE(ABNF)[\"disc\" / \"square\" / \"circle\" / '1' / 'a' / 'A' / 'i' / 'I']]"	,	,項目番号の種類	,[HTML4] 非推奨
,[CODE(HTMLa)[[[value]]]]	,[CODE(SGML)[[[NUMBER]]]]	,[CODE[1]]	,項目の番号	,[HTML4] 非推奨
- [CODE[pixmap=""]]

* 構文解析

[10] 
[PRE[
        ## NOTE: Special, Scope (<li><foo><li> == <li><foo><li/></foo></li>)::
          ## Interpreted as <li><foo/></li><li/> (non-conforming):
          ## blockquote (O9.27), center (O), dd (Fx3, O, S3.1.2, IE7),
          ## dt (Fx, O, S, IE), dl (O), fieldset (O, S, IE), form (Fx, O, S),
          ## hn (O), pre (O), applet (O, S), button (O, S), marquee (Fx, O, S)\
,
          ## object (Fx)
          ## Generate non-tree (non-conforming):
          ## basefont (IE7 (where basefont is non-void)), center (IE),
          ## form (IE), hn (IE)
        ## address, div, p (<li><foo><li> == <li><foo/></li><li/>)::
          ## Interpreted as <li><foo><li/></foo></li> (non-conforming):
          ## div (Fx, S)
]PRE]

* レンダリング

[5] [CODE(HTMLe)[[[ul]]]], [CODE(HTMLe)[[[ol]]]],
[CODE(HTMLe)[[[dir]]]], [CODE(HTMLe)[[[menu]]]],
[CODE(HTMLa)[[[type]]]], [CODE(HTMLa)[[[value]]]],
[CODE(HTMLa)[[[compact]]]], [CODE(HTMLa)[[[src]]]],
[CODE(CSS)[[[list-style]]]] などのレンダリングの説明も参照。

[[#comment]]


** 実装について

[6] ブラウザによっては、並び系要素の直下にない [CODE(HTMLe)[li]]
要素にも list marker を表示してくれる親切なものもあるので、
並び系要素を省略できると思っている人や、裏技(藁)として紹介している解説本もありました (今もそういう人いるの?)。

もっとも、 [[SGML]] 的には、[[開始タグ]]を省略できる変わった版の
HTML とみなして処理できることもあるかもしれませんが...


* HTML もどき

[67] [[DTBook]] にもありました。

[13] [[DTBook]] では [CODE[lic]] を[[内容]]に含められました。

- [66] 
[CITE@en-US[DAISY ANSI/NISO Z39.86-2002 - The DAISY Consortium]], [TIME[2023-11-26T05:17:33.000Z]] <https://daisy.org/info-help/document-archive/archived-projects/daisy-ansi-niso-z39-86-2002-archived/>


* 歴史

[1] ''Testing mcom additions to HTML'' <http://www.w3.org/People/Connolly/html-test/mcom/test-mcom.html>
を元に推測すると、 Classic Mozilla では、

[PRE[
 <ul>
 <li type=1 value=27>number 27
 <li>number 28
 </ul>
]PRE]

は

[PRE[
 27. number 27
 28. number 28
]PRE]

と表示されていたはずだ。ところが [[Mozilla]] 1.3b ではこれを

[PRE[
 27. number 27
 ・ number 28
]PRE]

と表示する。 [[WinIE]] 6.0 は

[PRE[
 ・ number 27
 ・ number 28
]PRE]

だ。マイナーに終わった独自拡張が受け継がれなかった一例か。
- [2] [[Google]] の検索結果の要約では、 [CODE(CSS)[[li {display: inline} li + li:before {content: ", "}]] 的な結果 (つまり、読点で項目を結合した文字列) がでてきます。

[3]
<http://groups.google.com/groups?selm=E187DC.4Kr%40vega.aichi-u.ac.jp>
- [4] [[HTML4]] によれば [CODE(HTMLa)[[[start]]]] や [CODE(HTMLa)[[[value]]]] は [CODE(SGML)[[[NUMBER]]]] らしいので、零以上の整数しか表せませんが、実装、たとえば [[Gecko]] は負整数にも対応しています。 (正符号は?)
- [5] Gecko は値を31ビット分 (2147483647) までしか扱えなくて、それ以上だと零や負数になってしまいます。 (多分上限は環境によって異なるでしょう。符号付き長整数が32ビットならこういう結果なのだと思われ。) [[WinIE]] 6 も同じところが限界でした。
- [6] ''Lists CHECK!'' <http://www.kmc.gr.jp/~ranran/browsers/lists.html>: >>4-5 テスト頁。

[7]
>>1 の頁を NC 48 で見てみたのですが、全部 [CODE[disc]] で表示されました。よくみたら、 [CODE(HTMLe)[ol]] ではなく [CODE(HTMLe)[ul]] ではないですか。

ということで [CODE(HTMLe)[ol]] になおして表示したら、[Q[27.]], [Q[28.]], [Q[・]], [Q[・]] になりました。よくみたら羅馬数字は [CODE(HTML)[I]] でなく [CODE(HTML)[R]] になっていますね。

Dan が試した当時の Navigator がどう表示していたのか確かめてみる必要がありそうです。それに限らず、現代の各 UA のこの辺の実装も調べてみたら面白そうです。
([[名無しさん]] [WEAK[2004-04-14 03:37:58 +00:00]])

[8]
[CITE[The <li> element's feedback]] ([[Ian Hickson <ian@...>]] 著, [CODE[2008-04-23 06:56:09 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/13838>


[9] [CITE@en[Fix how <li>s are numbered and associated with <ol>s]]
([[domenic]]著, [TIME[2016-11-09 04:06:54 +09:00]])
<https://github.com/whatwg/html/commit/fd726b069bee2c73600fbccac8e36f8783549bfc>

[11] [CITE@en[17632 – CSS: define rendering of <li> elements in terms of CSS (handling start="", reverse="", value="", and <li> elements that aren't children of <ol> elements)]]
([TIME[2016-11-29 12:45:40 +09:00]])
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=17632>

[FIG(quote)[
[FIGCAPTION[
[12] [CITE@en[Minutes '''['''was: Agenda for 971023 HTML WG meeting''']''']]
([[Dan Connolly]]著, [TIME[1997-10-24 03:37:08 +09:00]])
<https://lists.w3.org/Archives/Public/w3c-wai-hc/1997OctDec/0160.html>
]FIGCAPTION]

> 
> RESOLVED: <li> and <td>, INS DEL have to be %flow;
> 	(i.e. (%inline;|%block)*)

]FIG]
