HTML5の廃止要素の扱いは全て同じわけではない

HTML5の廃止要素の扱いは全て同じわけではない

webのあれこれ
2019/01/08
0
vanillaice (Akira)
vanillaice (Akira)
EducationHTML5トラブル対処Validation

html5では廃止された要素や属性というのが多数あるわけですが、一口に obsolete (アブソリート, 廃止)と言っても実際には2通りの扱いがあります。

廃止要素や廃止属性をどう扱うか

廃止であることに変わりがないとはいえ、webページの情報を 作成・送信する側 なのかwebページを 受け取る側 なのか、という立場の違いもありますよね。情報を送信する側が author(オーサー, 著者・管理者・作成者) であり、受け取る側が vendor(ベンダー, ブラウザとそのリリースメーカー) です。

ベンダーには 後方互換の原則 というのがあります。廃止と認定された要素を額面通りあっさり廃止してしまえばwebページは大混乱になってしまいます。ですから廃止とされている要素についてもある程度の conformance (コンフォーマンス, 適合)requirements (リクワィアメンツ, 要件) を満たしておかなければいけません。

とはいっても各管理者がベンダーと同じようにいつまでも廃止要素を利用し続けていればいつまで経ってもwebページは整備されません。というわけで、ベンダーにはYES、管理者にはNO といった形が取られています。

一見するとダブルスタンダードですね。ベンダーに対しては「サポートしろ」と言い、管理者には「使うな」と言う。でも大きな仕様・規格変更時はそれが一番順応性の高いやり方なんですね。ですから管理者へ向けては ブラウザがまだサポートしているからといって使用して良いわけではない という認識が大事です。

というわけで、廃止要素は should not be used (should not specify)must not be used (must not specify) と定義されているものがあります。

  • shoud not be used (should not specify) --- 使われるべきではない (記すべきでない)
  • must not be used (must not specify) --- 使われてはいけない (記してはいけない)

must not は should not よりも強い表現で「やってはいけません」「使ってはいけません」という意味です。should not についてはベンダーが対処・対応を考える点であって、管理者にとっては全て must not だと思ってコーディング することをおすすめします。でないと改正など進みません。というよりもそもそもが「廃止」だと言われているのですから細かな状況設定や使用するに値する理由などを探すのではなく素直に使わなければ良い話です(笑)
ちなみに5以前のバージョンのhtml(xhmlなども含む)は廃止ではありませんがやはり should not be used なのでよほどの理由が無い限りhtml5で構成するようにしましょう。

should not と must not の例

FC2ブログに関係しそうなものだけ抜粋します。およそ聞いたこともないようなものは除外。あくまでもブログの執筆時・記事作成時を想定して進めます。

should not

これらは 時代遅れだが適合性あり として処理されます。管理者としての捉え方は、「過去記事に存在するけれども、まぁ遡って全てを修正しなければいけないとまでは言わない。しかし今後は利用しない。」という感じで良いと思います。

  • img要素の border属性(*値がゼロの時)
  • a要素の name属性(*値が空でない場合)

FC2ブログのエディターツールを利用して画像を掲載すると border="0" とくっついてきます。このborder属性は廃止です。が、値がゼロの場合には過去記事はそのまま置いておけば良いと思います。もちろん時間や労力を惜しまないという場合には 削除 し、スタイルシート側で img {border: 0} を指定してください。

厄介なことにFC2ブログエディターがborder属性を吐き出してきますが面倒でも削除。エディターは「FC2サービス内での後方互換」という狭い範囲での互換性を考えなければいけませんので、html5専用エディターにはできないという事情があります(古い共有テンプレートを整理ができないことが原因のひとつ)

a要素のname属性は要素の特定に用いていましたが、今後はid名でもって行います。こちらも過去まで遡る修正は不要です。name属性はそれ自体に何らかの効能・効果があるわけではなく他の要素と紐付いていますので、過去のname属性を単純に削除してしまうと紐付いている要素との関連性が失われて大きな影響が出るかもしれません。

must not

これらは 完全に廃止され適合性も無し として処理されます。管理者としての捉え方は、「過去記事に存在するのならば極力排除する。当然今後は一切利用しない。」
ところがFC2ブログではそう簡単な話でもありません。

  • marquee要素 --- テキストなどが上下あるいは左右に流れるアレ
  • blink要素 --- テキストなどが明滅を繰り返すアレ
  • center要素 --- 要素のセンタリング
  • font要素 --- 文字に関する指定
  • align属性 --- 水平位置の指定
  • valign属性 --- 垂直位置の指定
  • hspace属性 --- 画像や動画などの水平方向余白指定
  • vspace属性 --- 画像や動画などの垂直方向余白指定
  • bgcolor属性 --- 背景色指定
  • cellpadding属性 --- table要素のセル内余白指定
  • cellspacing属性 --- table要素のセル間余白指定
  • background属性 --- 背景指定

属性の方はめっちゃたくさんあります。html4時代と同じ感覚で表を書いていたり画像とテキストの回り込み表現を書いていたり、という方は驚かれるかもしれませんね。そのほとんどが廃止、しかも must not be used です。

font要素なんですが、FC2ブログではコメント欄でコメント装飾ツールを利用した文字装飾を行うとfont要素が出来てしまいます。エディターの仕様変更は無理だとしてもコメント装飾ツールはそろそろ変更してもらないだろうか。そんなに難しいことではないはずだけど (´・ェ・`)

まとめ

結局のところ must not とされる廃止要素や廃止属性はいつ使えなくなってもおかしくない ということです。ここで言う「使えなくなる」というのは「意図した表示にならない」という意味です。視覚と深く結びついています。流れるはずの文字が止まっている、赤くしたはずの文字が黒のまま、センタリングしたはずが左寄せ、など。
そもそも廃止された理由が「視覚以外に使いみちが無い」ためなのですから、機能しなくなれば視覚的な問題が生じることになります。

みなさんなかなか書き換えようとしないんですね。確かに面倒ですもんね (´・ω・`)
しかし「今後」についてはどうにでもできるはずです。文章を長く残したいと思うならば正しくマークアップしましょうね、という記事でございました。

Related post

Comments  0

コメントに関する注意事項
  • テンプレートに関するご質問は各テンプレート専用記事でのみ受付致します。また、よくある質問をまとめているページも事前にご参照ください。
  • 専門的なご質問の場合、記事内容と明らかに関連の無い内容はお控えください(雑談の場合はその限りではありません)
  • 第三者が不快と感じる内容や論調でのコメントはお控えください(性的,高圧的,暴力的など)