Opera 9 のサポートするウェブ標準ならびに仕様
このページは Mac、Linux および Windows 版の Opera バージョン 9 について記述されています。Opera 8 に関する情報については Opera 8 のサポートする仕様をご覧ください。
HTML と XHTML サポート | XHTML Mobile Profile サポート | XHTML+Voice サポート | WML サポート | XML サポート | CSS サポート | ECMAScript サポート | DOM サポート | ネットワークサポート | テキストと国際化 | SVG とグラフィックサポート
Opera のサポートする HTML および XHTML
HTML 4.01
Opera は HTML 4.01 を以下の例外を除きサポートしています。
option要素のevent属性はサポートしていません。col要素のwidth属性は multilengths (分割) をサポートしていません。object要素のstandby属性やdeclare属性はサポートしていません。- テーブルセルの属性
charとcharoffはサポートしていません。
Web Forms 2.0
Opera は Web Forms 2.0 を実験的にサポートします。Web Forms 2.0 は現在作業中です。
XHTML 1.0 および XHTML モジュール化
XHTML サポートには、2 種類のモードがあります。一つは content type が text/html のドキュメントの場合で、もう一つは content type が text/xml、application/xml、application/xhtml+xml のドキュメントである場合です。前者のケースではドキュメントは他の HTML ドキュメントと同様に処理されます (XHTML 1.0, XHTML Basic, XHTML 1.1 の標準的なサポートも行います)。後者のケースでは、XHTML は HTML 要素および属性用にあらかじめ定義された機能を有する XML として処理されます。Opera はこの両方のモードをサポートします。
XHTML 1.1 サポート
Opera は XHTML 1.1 を以下の例外を除きサポートしています。
option要素のevent属性はサポートしていません。col要素のwidth属性は multilengths (分割) をサポートしていません。object要素のstandby属性やdeclare属性はサポートしていません。- テーブルセルの属性
charとcharoffはサポートしていません。 - ルビはサポートしていません。
XHTML Basic
Opera は XHTML Basic を以下の例外を除きサポートしています。
object要素のstandby属性やdeclare属性はサポートしていません。
OMA XHTML Mobile プロファイル
Opera は XHTML Basic の拡張である XHTML Mobile Profile 1.0 と 1.1 を例外なくすべてサポートしています。1.2 は object の declare 属性以外サポートしています。
XHTML+Voice (X+V) サポート
IBM Voice コンポーネントが付属した Opera は XHTML+Voice profile 1.2 (Mobile Profile サブセットも含む) をサポートします。X+V のサポートには CSS3 Speech (-xv- prefix モジュールについては現在準備中です) も含まれます。X+V は XML Event による効果を反映するためには XML メディアタイプ (application/xml, application/xhtml+xml, application/x-xhtml+voice+xml) として提供される必要があります。詳細は X+V developer documentation をご覧ください。
WML 1.3 および 2.0 サポート
WML 1.0 から 1.3 までは、HTML のサブセットに基づいていますが、実用的な目的のために作成された別個のマークアップ言語といえます。WML 2.0 は、WML 1.3 の機能を有する XHTML Basic の拡張と言うべきでしょう。
Opera は下記以外の WML 1.3 と 2.0 をサポートします。
- columns 属性
- 入力フォーマットコード <lang:class>
- wml:getvar 要素
ウィジェットサポート
Opera は HTML ウィジェットをどこか他でドキュメント化されたものとしてサポートします。ウィジェットの形式は現在標準化されていませんが、原則としてパッケージングプロパティをもつ HTML および ECMAScript のマイナーエクステンション (拡張) です。
XML サポート
Opera は XML ドキュメントを解析と表示できます。Opera は妥当性を検証するプロセッサおよび検証しないプロセッサのいずれでもあります。
Content-type が "text/xml"、"application/xml"、または "+xml" で終了するサブタイプのドキュメントは XML ドキュメントとして処理されます。Content-type が不明の場合には、".xml" ファイル拡張子も XML として処理します。Opera は US-ASCII を text/xml の初期設定の文字セットとしていませんが、さもなければ RFC3023 に従います。text/xml ではなく application/xml をお使いになるか、明確な文字セット宣言をご利用になるようお勧めします。
XSLT、XPath、XSL-FO
Opera は XSLT 1.0 と XPath 1.0 を以下の例外を除きサポートしています。
- namespace-alias 要素はサポートしていません
- decimal-value 要素の Nan、per-mille、minus-sign、percent属性はサポートしていません
- sort 要素の case-order 属性はサポートしていません
- document() 関数はサポートしていません
加えて exsl:node-set() 関数がサポートされました。
Opera は XSL Formatting Objectsをサポートしていません。
XML 名前空間と XML ID
Opera は XML 名前空間を完全サポートしています。
Opera 9 では text/html に対する名前空間のサポートを中止しました。
Opera は xml:id 属性をサポートしています。
XML Events
Opera は XML Events をサポートし、X+V において使用します。HTML script と VoiceXML form とで XML Events を処理します。
CSS サポート
CSS Level 1
Opera CSS1 を全てサポートしています。
CSS Level 2
Opera は以下の例外を除く CSS2 をサポートしています。
font-size-adjust、font-stretch、marker-offset、marks、text-shadowプロパティ- cjk-ideographic、hebrew、hiragana、hiragana-iroha、katakana、katakana-iroha などの list-style-type プロパティ
- "display: marker"、"text-align: <string>"、"visibility: collapse" のプロパティと値の組み合わせ
- 名前つき page (セクション 13.3.2 にて解説)
- "@font-face" コンストラクト
- :lang() セレクタ
CSS Level 2 Revision 1
CSS 2.1 は、現在 W3C で勧告候補とされています。準拠は最新バージョンと比較されていますが、最終的な勧告は異なる内容となる可能性もあります。
Opera は CSS2.1 を以下の例外を除きサポートしています。
visibility: collapseとwhite-space: pre-lineの標準値
CSS Mobile プロファイル
Opera は CSS Mobile profile を例外なくサポートします。
WAP CSS
WAP CSS は CSS Mobile profile の拡張です。Opera は WCSS バージョン 1.0 および 1.1 を完全にサポートします。
CSS 3 (草案) で Opera がサポートするプロパティ
下記のプロパティは開発の初期段階なので、いつでも変更・削除される可能性があります。実験用途としてお使いください。
- Media Queries を一部サポート
content要素は :before、:after 疑似要素に限らず全ての要素に使用可能box-sizingopacity
Opera CSS リンク拡張
Opera では、欠落していては表示不能な XML 要素への情報提供を行うために、CSS 風の属性を使用します。三つの拡張プロパティが実装され、ハイパーリンクおよび画像イメージが XML ドキュメントに挿入されるようになります。ほとんどの場合、以下で説明するプロパティよりも XHTML を使って作成した方が良いとされますが、ご参考までに掲載します。
| プロパティ: | -o-link |
|---|---|
| 値: | none | attr(<attribute-name>) |
| 初期値: | :n |
| 継承: | No |
| 説明: | このプロパティは 'link' 変数の値を設定し、それにより後に 'opera-use-link-source' プロパティを通じてリンクが生成されます。 |
| プロパティ: | -o-link-source |
| 値: | none | current | next |
| 初期値: | : n |
| 継承: | No |
| 説明: | このプロパティは要素を source anchor に設定し、現在ないし次の "-o-link" 変数のいずれの値を利用するかを宣言し |
-o-replace は廃止されました。これに相当する CSS3 メカニズムに変更予定です。
XML と CSS
XML ドキュメントを表示するためには、CSS スタイルシートが必要です。作成者は処理指示を通じ、XML ドキュメントにスタイルシートを付与することが可能です。以下は、簡単な例です。
<?XML version="1.0"?> <?xml-stylesheet href="shakespeare.css" type="text/css"?>
スタイルシートが存在せず、ページの名前空間が HTML に関連付けられていない場合、Opera 9 はドキュメントを表示するため、全ての CSS プロパティにおいて初期値を使用します。要素はすべてインラインとなります。また、テキストはすべて同じフォントによって提供されます。
ECMAScript サポート
ECMAScript は Java コアを標準化したもので、ECMA standards body を通じて標準化されています。ECMAScript にはブラウザやドキュメントに関連したオブジェクトは含まれません。
Opera は ECMA-262 2ed ならびに 3ed 標準を例外なくサポートします。これは JavaScript 1.3/1.5 コアとほぼ同等です。
DOM サポート
- サポートしている DOM 2 コアの一覧表
- サポートしている DOM 2 HTML の一覧表
- サポートしている DOM 2 Event の一覧表
- サポートしている DOM 2 Style の一覧表
- サポートしている DOM 2 Range と Traversal の一覧表
- サポートしている DOM 3 Load と Save の一覧表
- サポートしている DOM 3 XPath の一覧表
- サポートしている XMLHTTPRequest の一覧表
- サポートしている Canvas の一覧表
- サポートしている DOM SVG の一覧表
DOM 2 コア
軽微な例外を除き、Opera は DOM 2 Core の Fundamental インターフェースを完全サポートしています。Notation、Entity、EntityReference の Extended インターフェースはサポートしません。
DOM 2 HTML
HTML のサポート例外に対応する軽微な例外を除き、Opera は DOM 2 HTML を完全サポートしています。
DOM 2 Events
Opera 9 は DOM 2 Events を例外なくサポートしています。DOM 3 Events の作業が W3C で再開されましたが、勧告となった暁には例外なくサポートする予定です。
DOM 2 Style
Opera は二三の例外を除き DOM 2 Style をサポートしています。このモジュールは現在 W3C で開発中です。アップデートバージョンを例外なくサポートする予定です。
DOM 2 Range
Opera は DOM 2 Rangeをサポートしています。
DOM 2 Traversal
Opera は二三の例外を除き DOM 2 Traversal をサポートしています。
DOM 3 Load と Save
Opera は二三の例外を除き Load and Save をサポートしています。
DOM 3 XPath
Opera は二三の例外を除き DOM 3 XPath をサポートしています。これは現在 W3C ノートとなっています。
XMLHTTPRequest (XHR)
XMLHTTPRequest は作業中です。勧告となった暁には例外なくサポートする予定です。
Canvas
Opera は Canvas を実験的にサポートします。Canvas の仕様は現在作業中です。
ネットワークプロトコルサポート
Opera は HTTP 1.0 ならびに HTTP 1.1 を完全サポートしています。ハイライトは以下のようになります。
- 常時接続 (単一のコネクションによる複数の要求/応答)
- キャッシュを作らない・キャッシュをディスクに作らないなどのキャッシュコントロール
- Basic 認証。body 内の認証を除く Digest 認証をサポートします。
- レジュームダウンロード (サーバ側が対応しているとき)
- SSL/TLS サポート (proxy/firewall を含む)
- HTTP、FTP、Gopher、WAIS 用のプロキシ
暗号化: Secure Sockets Layer (SSL) バージョン 2 と 3 および Transport Layer Security (TLS) v1.0 および 1.1 に対応した 128 bit 暗号化 (RSA 公開鍵方式のみ) をサポートしています。SSL 2 は廃止されており、初期設定ではサポートされていません。また、HTTP (web)、NNTP (news)、POP ならびに SMTP (メール) に対応しています。プライベートキーの生成や証明書のリクエストもサポートしています。
ニュース: 暗号化されたニュースサーバやパスワード付きのニュースサーバをサポートしたシンプルなオンラインニュースリーダー。MIME 形式の、もしくはエンコードされていない記事への添付をデコードすることができます。
レジュームダウンロードを含む FTP をサポートしています。
FTP、HTTP 両形式によるダウンロードをサポートしています。
テキストと国際化
Opera の Unicode サポート
Opera は Unicode にて指定されたすべての文字上で動作します。ネットワークから Opera に伝えられたテキストは、すべて Unicode に変換されます。
Opera が Unicode 文字を表示するためには、必要とされる文字がお使いのシステム上のフォントにて利用可能である必要があります。これは比較的古いウインドウズ・システムにおいて問題となり場合があります。詳細な情報については Unicode fonts for Windows computers をご覧ください。
Opera 9 は以下の書き込みシステム関連機能を実行します。
- font-switching
- 使用中のフォントに含まれていない文字を表示するために必要です。
- line-breaking
- 中国語・韓国語・日本語のように、スペースのない文章を表示するために必要です。
Opera は、実行するオペレーティング・システムに依存します。
- character shaping
- Contextual glyph selection、ligature forming、character stacking、combining character support 等。
エンコーディングサポート
Opera は Unicode (UTF-16 ならびに UTF-8) で動作しますが、インターネット上のほとんどのテキストは、Unicode 以外の古めかしいエンコーディング (例えば ISO 8859-1、windows-1251、Shift-JIS、EUC-KR) でエンコードされています。Opera は、使用されるエンコーディングを検知しそれを UTF-16 に変換することで文字データを処理します。これらのページの処理方法に関しては、三つのオプションを用意しています。
- 自動検出
- Opera はページ単位で使用されるエンコーディングを検出しようとします。転送プロトコルによりエンコード名が提供される場合には、そのエンコード名が使用されます。そうでない場合には、Opera はページ中の charset 宣言を検索します。これが見当たらない場合、Opera はドメイン名を使用してページが CJK スクリプトかどうか、もしそうであればいずれに該当するかなどを確認し、エンコーディングの自動検出を試行します。Opera はまた UTF-8 を自動検知します。
- スクリプトにより自動検出
- ユーザには日本語あるいは中国語のページであると明らかでありながら、エンコードが不明な場合に使用します。Opera はページのテキストに使われているエンコードを分析し、使用されているエンコードを決定します。
- エンコードの上書き
- ユーザがエンコードを指定したい場合に使用します。転送プロトコルやページのエンコード情報ではなく、指定されたエンコードでページを表示します。
以下の一覧には、Opera が Unicode に加えてサポートするすべてのエンコードが掲載されています。
| エンコード | カテゴリ | コメント |
|---|---|---|
| ISO 8859-1 | ラテン | |
| ISO 8859-2 | ラテン | 東ヨーロッパ言語 |
| ISO 8859-3 | ラテン | あまり使われない |
| ISO 8859-4 | ラテン | サーミ、バルト海沿岸諸国 |
| ISO 8859-9 | ラテン | トルコ語 |
| ISO 8859-10 | ラテン | イヌイット、サーミ、アイスランド語 |
| ISO 8859-13 | ラテン | あまり使われない |
| ISO 8859-14 | ラテン | ケルト語 |
| ISO 8859-15 | ラテン | 8859-1 の代替案 |
| Windows-1250 | ラテン | 東ヨーロッパ言語 |
| Windows-1252 | ラテン | |
| Windows-1254 | ラテン | トルコ語 |
| Windows-1257 | ラテン | バルト海沿岸諸国 |
| Windows-1258 | ラテン | ベトナム語 |
| VISCII | ラテン | ベトナム語 |
| IBM 866 | キリル文字 | |
| ISO 8859-5 | キリル文字 | |
| koi8-r | キリル文字 | |
| koi8-u | キリル文字 | koi8-r のウクライナ語版 |
| Windows-1251 | キリル文字 | |
| ISO 8859-6 | アラビア語 | |
| Windows-1256 | アラビア語 | |
| ISO 8859-7 | ギリシャ語 | |
| Windows-1253 | ギリシャ語 | |
| ISO 8859-8 | ヘブライ語 | |
| Windows-1255 | ヘブライ語 | |
| ISO 8859-11 | タイ語 | TIS-620 としても知られている |
| Windows-874 | タイ語 | ISO 8859-11 の拡張 |
| utf-8 | Unicode | |
| utf-16 | Unicode | |
| Shift-JIS | 日本語 | |
| ISO-2022-JP | 日本語 | |
| EUC-JP | 日本語 | |
| Big 5 | 中国語 | |
| EUC-CN | 中国語 | GB 2312 として誤認されることもある |
| HZ-GB-2312 | 中国語 | 主にメールで使用 |
| EUC-TW | 中国語 | |
| GBK | 中国語 | EUC-CN 拡張 |
| EUC-KR | 韓国語 |
両方向混在テキストのサポート
Opera 9 は Unicode、HTML、CSS にて説明されている bidrectional text (両方向混在テキスト) をサポートしています。
グラフィックサポート
スケーラブルベクターグラフィック (SVG)
Opera は二三の例外を除き、上位集合の SVG 1.1 Basic および SVG 1.1 Tiny をサポートしています。これは SVG 1.1 の部分的サポートへの道を開くものです。
あらゆるイベントを視聴するイベントもサポートされますが、イベントによってはアプリケーションから送信されないものもあります。focusin、focusout、activate などです。Adobe 固有のイベントである keyup や keydown はサポートされません。font-family などのフォントはサポートされますが、選択したフォントに不明なグリフがあった場合には、そのグリフをfont-family の次のフォントから得る代わりにプラットフォーム定義の代替システムが使用されます。
SVG を HTML の object、embed、iframe で、スタンドアローンのドキュメントとして利用できます。img 要素はサポートしませんし、CSS プロパティ値 (例 background-image) でもサポートされません。SVG の image 要素には、サポートされているあらゆるラスターグラフィックを含むことが可能ですが、他の SVG 画像を含むことはできません。
SVG 画像はラスター画像として印刷されます。
SVG は XML として処理され、well-formedness と名前空間用のルールと同じルールが適用されます。Opera はまた、何か不明な機能があった場合に、停止の処理を要求する SVG の適合性ルールに従います。
パフォーマンス
これらの機能は特に高価なプロセッサであるため、フィルタ、透明レイヤ (グループ不透過率)、マスクなど、低速のプロセッサ搭載のマシーンを対象とする際には、使用にあたり注意が必要です。
ラスターグラフィック
Opera は GIF89a、JPEG、BMP、ICO、WBMP およびアルファチャンネル透過とガンマ埋め込みを含む PNG を全てサポートしています。
