これらはいずれも物理要素の範疇になり、実際濫用は慎むべきである
と言う意見も少なくはありませんが、その一方で文書構造を明確にする目的で使うのなら問題は無い
という意見もあるものです。
<hr>要素は横罫線でブロックレヴェル要素です。
横罫線を引く機能のみなので、内容となるテキストを持たない空要素となります。
本来、この様な物理要素は利用する事自体が好ましくないとされておりますが、項目の区切りなどといった論理的な意味合いを持たせて用いる事も出来る為、XHTML 1.1/XHTML 1.0 ストリクトでは排除されていません。
<hr>要素は、XHTML 1.1/1.0 ストリクトでは以下のように書きます。
<hr />
<br>要素は改行でインライン要素です。
改行する機能のみなので、内容となるテキストを持たない空要素となります。
<br>要素は、XHTML 1.1/1.0 ストリクトでは以下のように書きます。
… <br /> …
<br>要素をテキスト整形、すなわち行を揃えるのに用いるのは絶対にいけません。
ウェブブラウザのウィンドウをリサイズしたり、フォントの大きさを変えたりすれば、整形のつもりだったのが却って崩れの原因になるのは明らかだからです。
<br>要素に関しては、本来ブロックレヴェル要素で適切にマークアップされていれば、出てくる必然性が無いものです。
なぜなら、視覚系のウェブブラウザのデフォルトスタイルではブロックレヴェル要素の前後では必ず改行するからです。
ですから、<br>要素はあまり使う必要は無い筈です。
それこそ、<br>要素を徹底的に排除すべき
と主張する意見も見られます。
<br>要素はブロックレヴェル要素を内容に持てない<address>要素などの中で改行が必要な場合にのみ用いるべきだと言う意見もあります。
勿論、制作者は何が何でも<br>要素を排除すべきとは言いません。
ただ、<br>要素はきちんとマークアップしていれば、出番は無いのでは無いでしょうか。