私はこの言葉の使用法に出くわし続け、その使用法や伝えられている意味を理解していません。
のようなフレーズ...
「読む人のためのセマンティクスを追加する」
「HTML5セマンティクス」
「セマンティックウェブ」
「意味的に正しく...への道」
...私を混乱させ、私は単にWebを参照しているのではありません。 Wordは、「文法」または「構文」を表す別の言い方ですか?
ありがとう!
セマンティクスは、プログラム(またはその他)のさまざまな要素の意味です。
たとえば、次のコードを見てみましょう。
int width, numberOfChildren;
これらの変数は両方とも整数です。コンパイラの観点からは、これらはまったく同じです。しかし、名前から判断すると、1つは何かの幅であり、もう1つは他のいくつかの数です。
numberOfChildren = width;
構文的には、整数を相互に割り当てることができるため、これは100%問題ありません。ただし、意味的には、これは完全に間違っています。これは、子の幅と数(おそらく)には関係がないためです。この場合、コンパイラが許可したとしても、これは意味的に正しくないと言えます。
構文は構造です。セマンティクスは意味です。それぞれの異なる文脈は、用語に異なる色合いの意味を与えます。
たとえば、HTML 5には、タグでラップされたデータに意味を与えることを目的とした新しいタグがあります。 <aside>
タグは、そこに含まれるデータがそれ自体の周囲の情報に接線方向に関連していることを伝えます。ほら、それは意味であり、マークアップではありません。
HTML 5の新しいセマンティックタグのこのリスト を見てください。 <b>
、<em>
、<pre>
、<h1>
などの古くて馴染みのあるHTMLタグと比較してください。これらはそれぞれ、ブラウザでレンダリングされたHTMLコンテンツの外観に影響を与えますが、その理由はわかりません。それらは意味の情報を含んでいません。
形容詞としての「意味論的」という言葉は、単に「意味のある」という意味であり、コンピュータサイエンスの「高レベル」という言葉に非常に関連しています。例:セマンティックデータモデル:セマンティックであり、背景や専門知識に関係なく誰でも意味があり理解できるデータモデル。 Javaは、クラス、メソッド、およびフィールドに意味のある単語を使用するため、C++はJavaよりもセマンティクスが低くなります。HTML5セマンティクス:、、、などのタグを参照してください。
等々。
それは「意味」を意味します。これは、構文と文法をすでに説明したときに残っているものです。たとえば、C++ではi++;
は文法によって有効なステートメントとして定義されていますが、それが何をするかについては何も述べていません。 「iを1つインクリメントする」はセマンティクスです。
HTML5セマンティクスは、整形式のHTML5記述がページに配置することになっているものです。 「セマンティックWeb」は、一般的に、リンクや検索が単語ではなく意味に基づいているWebです。何かをするための意味的に正しい方法はそれを行う方法であり、それは正しいことを意味します。
HTMLの世界では、「セマンティック」は、出力がどのように見えるかを単に考慮するのではなく、タグの意味について話すために使用されます。たとえば、外国語をイタリック体にするのが一般的であり、強調された単語をイタリック体にするのも一般的です。すべての外国語または強調された単語を<i>..</i>
タグでラップするだけでかまいませんが、それはそれらがどのように見えるかを説明するだけであり、なぜそのように見えるかについては説明しません。
強調された単語に使用するのに適したタグは<em>..</em>
です。これは、強調のセマンティクスを伝えるためです。ブラウザ(またはスタイルシート)はそれらをイタリックでレンダリングでき、ページの他のコンシューマーはWordが強調されていることを認識します。たとえば、スクリーンリーダーは、強調された単語として適切に読み取ることができます。
私の見解では、それは構文を文法的に見るようなものです。私は広義のセマンティクスについて話すことはできませんが、人々がWebでセマンティクスについて話すとき、彼らは通常、CSSやJavaScriptなどをすべて取り除いた場合のアイデアを指します。残されたもの(裸の骨のhtml)は読むのが理にかなっています。
また、正しいマークアップのために正しいタグを使用することも考慮に入れています。これは、古いテーブルベースのレイアウト(テーブルは表形式のデータにのみ使用する必要があります)、およびリストを使用してリストのようなコンテンツを表示することに由来します。
H2よりも重要性の低いものにはh1を使用しません。それは意味がありません。