media descriptor

媒体型 (CSS)

仕様書

媒体型の一覧

[53]

媒体クエリーでの評価

[37] 媒体クエリー媒体型が指定された場合、利用者エージェント装置が指定された媒体型と一致すれば、一致しなければとなります。

[38] 特別な媒体型である all はすべての媒体型と一致するとみなされます。

[39] notandoronly は予約語となっており、媒体型とはみなされず構文エラーになります。 >>36

[40] このうち or は他の用途で使われていません。
[46] Gecko は構文エラーとみなさず、 CSSOM に現れます。 Chromeor を構文エラーとみなしませんがそれ以外はみなします。

[41] 未知の媒体型は、と評価されます。 >>36

[42] 不正なものとして無視されるのではなく、となります。従って not unknown-media-typeになります。

[43] CSSOM 上も未知の媒体型はそのまま現れます。 (全体が無視されるわけではありません。)

適合性

[49] 媒体クエリー適合するためには、媒体型は適当な仕様に適合するものである必要があります。 <http://w3c-test.org/csswg/mediaqueries/#syntax>

[50] >>49 のような「事実の文」はありますが、現代的な仕様ならあるべき明確な適合性の規定はどこにもありません...

メモ

[4] 媒体記述子 (media descriptor) は、媒体の種類を表す名前です。

[5] HTML 4CSS では媒体型 (media type) とも呼びます (特に CSS では媒体型とのみ呼びます) が、媒体型というと MIME の Internet Media Type (Content Type) を指すこともありますから、ここでは媒体記述子と呼びます。

なお、 HTML 4 では後者を内容型 (Content Type) と呼ぶことではっきり区別しています。

[23] CSS3 では条件判断を含めて拡張した媒体問合せ (media query) を導入しています。

[24] HTML / XML の媒体型と CSS の媒体型は、ほとんど値や定義が同じですが、同じものだという規定はどこにもありません。 ですから CSS2 にある embossed という値を HTML 4 や XML で使って良いのか判断できません。 >>21 の CSS3 draft の内容を見れば、 W3C 的には同じ値をとり得ることは明らかですから、現状で不明瞭なのは単に HTML と CSS の制定時期の関係だと思われます。

XHTML2 の draft は CSS2 を参照していますから、この状況は改善されるでしょう。

[35] >>24 とかいってると

HTML Working Group Voyager Issue Tracking System - Modularization-text/8302 <http://hades.mn.aptest.com/cgi-bin/voyager-issues/Modularization-text?id=8302>

のようなくだらない問題を引き起こすんだよねぇw (名無しさん [sage])

(X)HTML

[6] HTML 4 では、 link 要素の media 属性の値として使い、リンク先文書の媒体を示します。

主に、外部スタイル・シートの適用媒体を指定するのに使いますが、他のリンク型に対しても使えます。

HTML 4 を XML 化した XHTML1 でも同様に使えます。

[9] style 要素にも media 属性があります。 (こちらはもちろんスタイル・シート専用です。)

[10] 仕様には既定値は screen だと書いてありますが、 DTD には載っていません。 (all ではないんだ。)

[22] >>10 XHTML2 の draft は既定値を all にしています。

[11] media 属性の値 %MediaDesc; は媒体型を読点区切りで列挙したものですが、 HTML4 では、将来の版の拡張を想定した解析方法を規定しています。

媒体型の値

all
全ての機器
aural
発話合成器
braille
点字凹凸 feedback 機器
handheld
handheld 機器 (小画面, 白黒, ビットマップ画像, 限られた帯域)
print
頁付けされた不透明なもの及び画面上での印刷予見 (プレビュー) モードでの表示
projection
投影機
screen
付けされていない計算機画面
tty
固定幅文字枠を使う媒体。テレタイプ, 端末, 限られた表示能力の携帯機器など
tv
テレビ型機器 (低解像度, 多色, 限られたスクロール能力)
atsc-tv
ATSC DASE 利用者エージェント DASE]
csshttprequest
CSSHttpRequest

解釈

[34] HTML 4 は、 media 属性の構文解析に際し、将来の拡張を見越して次の処理を適合利用者エージェントに義務付けています。 (<IW:HTML4:"types.html#type-media-descriptors"> 参照。)

  1. 値を実体の読点分離並びとして解釈する。仕様書の例示によれば、読点の直後の空白も分離子に含まれる。
  2. [A-Za-z0-9-] 以外の最初の文字の直前までに丸める。
  3. 大文字・小文字を区別して定義された媒体型との一致を試みる。 一致しなければ無視する。

CSS

CSS2

[13] CSS は level 2 で媒体型の考え方を導入しました。

[15] CSS2 で媒体型の値を指定できる場所は、 @import@media の2箇所です。例:

 @import 'foo.css' screen;
 @media screen, print {
   .foo {display: none}
 }

[17] CSS2 は、技術の進歩は早いので @media で指定できる媒体型の値の完全な一覧は定義しないとしています。 従って、 CSS2 仕様書にない値を使うことは必ずしも問題ではありません。

しかし無闇に仕様外の値を使うことは望ましくないでしょう。 どうしても仕様にない値を使う場合は、 -foo-medianame のように明らかに非標準であることが分かる名前を選ぶといいかもしれません。

[18] CSS2 附属書 D を元にした ABNF での構文:

  • media-types = medium *([FWS] "," [FWS] medium) [FWS]
  • medium = IDENT

[19] >>18 の構文からすれば >>18 の例は不正ですが、 -moz-* のような拡張属性名・属性値を考えれば問題ないでしょう。

[20] 媒体型は大文字・小文字を区別しません。

[16] CSS2 は媒体型に加えて媒体組 (media group) を定義しています。 これは媒体型のようにスタイル・シートなどに記述するものではなく、仕様書の説明のためのもののようです。 (媒体型同様に使えるとはかかれていませんし、構文などに登場しませんし、 W3C の Validator でも error がでます。)

媒体型の値

all
全ての機器
aural
発話合成器
braille
点字凹凸 feedback 機器
dark
利用者が暗い背景色を使っているとき [Emacs/W3]
emacs
Emacs 19 (なぜに 19?) [Emacs/W3]
embossed
頁付けのある点字印刷機
handheld
handheld 機器 (典型的には小画面, 白黒, 限られた帯域)
light
利用者が薄い背景色を使っているとき [Emacs/W3]
oxygen
Oxygen Oxygen
print
頁付けされた不透明なもの及び画面上での印刷予見 (プレビュー) モードでの表示
projection
投影表現用。投影機又は透明なものへの印刷
screen
主に色付けられる計算機画面
speech
-> aural [Emacs/W3]
tty
固定幅文字枠を使う媒体。テレタイプ, 端末, 限られた表示能力の携帯機器など (ピクセル単位を使用するべきではない)
atsc-tv
ATSC DASE 利用者エージェント DASE
dde-tv
ARSC DDE 利用者エージェント DDE
dvb-tv
MHP 端末 [MHP 1.1]
tv
テレビ型機器 (低解像度, 多色, 限られたスクロール能力の画面, 音声が利用可能)
xemacs
XEmacs 19 (なぜに 19?)

[31] 多分 (X)Emacs 19 なのはそういう時代に Emacs/W3 の文書が書かれたからで、今の版でも有効なんじゃ?

[32] CSS 2 附属書 A のスタイル・シートの例では aural とすべきところが誤って speech になってます (Errata in REC-CSS2-19980512 <http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html>)。 このスタイル・シート片はそもそも Emacspeak の作者のものを採ったらしいです。なるほど。

媒体組の値

continuous
継続
paged
頁付け
visual
視覚的
aural
聴覚的
tactile
触覚的
grid
枠あり (文字枠機器)
bitmap
ビットマップ (表示位置を自由に設定できる)
interactive
対話型 (利用者の操作を得られる機器)
static
静的 (利用者の操作を得られない)
all
全て
連続性対象感覚配置の自由性動的か静的か
auralcontinuousauralなし両方
braillecontinuoustactilegrid両方
dvb-tvcontinuousvisualbitmap両方
embossedpagedtactilegrid両方
handheld両方visual両方両方
printpagedvisualbitmapstatic
projectionpagedvisualbitmapstatic
screencontinuousvisualbitmap両方
ttycontinuousvisualgrid両方
tv両方visual & auralbitmap両方

CSS3

[21] CSS3 draft の1つ, Media Queries <http://www.w3.org/TR/css3-mediaqueries/> (2003年2月の時点で CR) は、媒体問合わせ (media query) として HTML4/CSS2 の媒体型を拡張しています。

emboss 問題

[25] 点字媒体を表す CSS 2 で導入された媒体名は embossed ですが、媒体組の説明が誤って emboss になっているという致命的な問題があります。

このため、 CSS の解説は embossembossed に割れてしまっています。また、媒体名と媒体組の説明をそれぞれ仕様書に忠実に書いたために、仕様書同様同一文書中に2種類が混在している説明も多数存在します。

<del>

メモ

[45] かつて WinIEOpera は未知の媒体型CSSOMunknown に置き換えていました。

[51] Bug 23610 – In the tag cloud example, the inline counts of the tags should be "hidden" off-screen (e.g. position: relative; left: -3000em) rather than using display: none. This way, the information will not be hi [...] ( ( 版)) <https://www.w3.org/Bugs/Public/show_bug.cgi?id=23610#c3>

[52] 技術仕様 << mixi Developer Center (ミクシィ デベロッパーセンター) ( ( 版)) <http://developer.mixi.co.jp/connect/mixi_plugin/mixi_check/spec_mixi_check/>

[47] Drop the "Media:" entry from propdef tables (frivoal著, ) <https://github.com/w3c/csswg-drafts/commit/951fc349f63ce196e3f9b4f4a0213db6e76b1f10>

[54] Replace Media:all in propdef tables with prose (frivoal著, ) <https://github.com/w3c/csswg-drafts/commit/930a89b5b7c3b0727bd170833fd5465c191d47b1>