web-dev-qa-db-ja.com

セマンティックHTMLマークアップの使用を避ける正当な理由はありますか?

バックグラウンド

私は最近、約5年前に構築された社内CMSを継承した会社で開発者として新しい仕事に就きました。 CMSはXMLでページを作成し、HTMLとしてページに出力します。一部のマークアップはバックエンドPHP内で生成されますが、一部は編集を可能にするために管理レイヤーでユーザーに公開されます。これまでのところ、マークアップのいずれもセマンティックではないことを確認しました。その95%は、次のようにタグでラップされたプレーンテキストです。

<div>
    This is a heading
</div>
<div>
    This is a subheading
</div>
<div>
    This is a paragraph.
    <div>
        <a href='#'>This is a button</a>
    </div>
</div>

(必要に応じてマークアップにはネストされたdivがあり、クラスを利用しますが、上記はセマンティックタグが使用されていないことを示すためのものです。)

私はこの会社のフロントエンド作業を担当する唯一の開発者です。以前のフロントエンド開発者が辞めました。セマンティックマークアップを使用してはならず、今後もマークアップスタイルを維持する必要があることをハンドオーバーで通知されました。私はこの構造的決定について技術的な説明を引き出すことができず、会社の他の従業員も知りません。

今のところ、システムを一貫して維持するつもりですが、その間に、なぜこの構造的な選択が行われたのかを調査しています。元々、プラットフォームはIE8をサポートしていましたが、現在はIE9以降をサポートしています。テンプレートシステムでの実験により、CMScanがセマンティックHTMLを処理することがわかり、私のテストでは、生成されたWebページが期待どおりに機能することを示しています。最新のブラウザーにHTML5セマンティック要素が導入されたことによる問題は検出できません(IE8でのテストはまだ試みていませんが)。

質問

Webプロジェクトからセマンティックマークアップの使用を意図的に除外するための考えられる技術的理由は何ですか?

NB。一部の企業には非定型の社内ルールがあり、それらの企業で働くには、意見に関係なく、ルールに従う必要があります。私の質問は、現状を維持するべきか、それとも変更すべきかではなく、そもそもどのような理由が設計の選択に影響を与えたのかということです。

2
Candlejack

セマンティックマークアップを使用すると、多くの利点があります。

  • 強調、テーブル、リンクなど、多くの目的に適したデフォルトスタイルを取得します。
  • <form><a><input><select><details>など、外観と動作が事前に構築されたユーザーインターフェイス要素が多数あります。
  • 支援技術がHTMLタグを解釈できるため、基本レベルのアクセシビリティが得られます。
  • セマンティックマークアップは、検索エンジンや他のユーザーエージェントがコンテンツをよりよく理解するのに役立ちます(PocketやInstapaperなどのサービス、または一部のブラウザーの組み込みの可読性ビューは、ユーザーエクスペリエンスを向上させるために関連コンテンツを抽出しようとします)。

しかし、これらも不要であるか、欠点である可能性があります。

  • デフォルトのスタイルはブラウザ間で一貫していません。あなたは多かれ少なかれあなたがカスタムスタイルでそれらの上に構築することができる前にそれらを最初にリセットする必要があります。
  • テキストを書いていない場合、デフォルトのスタイルはあまり役に立ちません。実際、レイアウトを行う際に邪魔になる傾向があります。あなたの意図に関係なく、あなたはほとんど<div class="component">に行き着きます。
  • 一部の組み込み要素のスタイルを設定するのは困難です。一貫性のあるユーザーエクスペリエンスを構築しようとしている場合は、独自のユーザーインターフェイス要素を開発することが興味深いかもしれません。例えば。 <textarea>からリッチテキストエディタを構築することはできません。スクロールバーに一貫したスタイルを設定することはできません。
  • アクセシビリティを必要としない場合(多くの規制環境ではあり得ない)、またはCSSとaria-*属性を使用して必要なアクセシビリティ機能を自分で実装することを好む場合があります。
  • あなたは検索エンジンに優しい必要はないかもしれません。また、Googleがページソースよりもページのスタイル付きの外観に関心を持っているという証拠がいくつかあります。

しかし、それは、元の開発者がこれらのケースを検討し、それらに対してまたはそれに対して意識的な決定をしたことを前提としています。これは当てはまらなかった可能性があり、実際の原因は次のとおりです。

  • 利用可能なタグとその適切な使用法について管理インターフェースのユーザーを教育することは難しすぎると考えられました(私の「お気に入り」の悪用:人々が<br><br>…を理解していないため、段落区切り文字として<p>)。
  • 一部のセマンティックタグに対するブラウザのサポートについて、FUD(恐怖、不確実性、偽情報)があったため、それらを使用しない方が安全であると考えられました。
  • タグを追加すると、XML→HTML変換が複雑になりすぎます。

元の開発者が去ったので、彼らは将来の開発に発言権がありません。それが何であれ、<div>sのみを使用するという設計上の決定の背後にある彼らの理由はわかりません。上記のアイデアのいずれもCMSのコンテキストで意味をなさない場合は、本当の理由が存在しないと見なすことができます。その場合、セマンティックHTMLがプロジェクトに価値を提供するのであれば、適切な変更を提案することをお勧めします。

3
amon

Div要素は、何にでも使用できる汎用要素です。スタイリングを使用すると、他の要素と同じ視覚的出力を生成できます。ただし、ブラウザには独自のデフォルトスタイルが用意されており、独自のスタイルに置き換える場合はその作業が重複しますが、視覚的なスタイルを作成するためにある程度独自のスタイルを作成している可能性があります。

Div要素は非常に一般的であるため、要素のセマンティクスやHTMLアウトラインへの適用方法について考える必要がなく、使用する方が簡単です。したがって、コードの記述が簡単になります。怠惰だと言う人もいますが、新しい要素のいくつかは、さまざまな解釈や混乱にさらされています。

HTML5では仕様が変更されたため、最後の手段としてdiv要素を使用することをお勧めします。現在、 仕様による 、セクション、記事などの新しい要素を使用して、ドキュメントのHTMLアウトラインにより良い意味を与えることが提案されています。

他の要素が適切でない場合に備えて、作成者はdiv要素を最後の手段の要素と見なすことを強くお勧めします。 div要素の代わりにより適切な要素を使用すると、読者のアクセシビリティが向上し、作成者の保守性が向上します。

したがって、アクセシビリティと保守性の向上は技術的な理由と見なされる可能性があります。

SEOに関する限り、新しいHTML5セマンティック要素に重みを与える検索エンジンはありません。指定されたHTMLアウトラインを使用する検索エンジンもありません。 Googleが述べた HTML5要素は、より多くの人々が使用するまで考慮されませんが、今後、これは変更される可能性があり、おそらく変更されるでしょう。

... HTML5を使用してサイトの一部を実装する際に邪魔をしたくはありませんが、現時点ではHTML5マークアップのためにコンテンツが特別に扱われることも期待していません。

上記の引用は6年前のものですが、Googleから別の言い方をするものは見たことがありません。

1
Rob