<div> là container không mang nghĩa; <section> là một khối nội dung có chủ đề riêng.
html
<!-- div: chỉ để bọc cho layout -->
<div class="grid">
<section>
<h2>Mô tả sản phẩm</h2>
<p>...</p>
</section>
<section>
<h2>Đánh giá</h2>
<p>...</p>
</section>
</div>Quy tắc quyết định:
- Chỉ cần chỗ để gắn display:flex, padding, background → <div>.
- Khối này có tiêu đề riêng và có thể xuất hiện trong mục lục của trang → <section>.
Spec nói rõ: <section> nên luôn có heading. Một <section> không heading thì với screen reader gần như vô dụng, và đúng ra nên là <div>.
Lưu ý: đổi hết <div> thành <section> cho "semantic hơn" là phản tác dụng — landmark bị loãng, screen reader phải đọc qua hàng chục region vô danh.