纯html无法实现有数据、能保存、可展示历史的评论区,只能搭建结构骨架;必须配合javascript和后端(或utterances等第三方服务)才能实现不刷新提交、持久化存储与嵌套回复。

纯 HTML 无法实现“有数据、能保存、可展示历史”的评论区,它只能搭出结构骨架;真要让评论不刷新页面就提交、不丢内容、还能嵌套回复,必须配合 JavaScript 和后端(或第三方服务)。
为什么用 <section></section> 而不是 <div> 包每条评论
<p>因为 <code><section></section> 带语义:它表示一个独立、可被引用的内容单元——用户发的每条评论,本质上就是这样一个单元。屏幕阅读器会把它当独立区块读,搜索引擎也更容易识别这是“一条评论”,而不是一堆无意义的 <div> 套娃。
<p>常见错误是把所有评论塞进一个 <code><ul></ul> 或平铺在 <div id="comments"> 里,再靠 class 名(如 <code>comment-item)模拟层级。这会让键盘导航跳过整块、打印样式错乱、辅助技术无法定位单条评论。
- 每条评论必须单独包裹在
<section></section> 中,且加 aria-label="用户评论"
- 子回复建议用
@#@#@#@#@#@#@#@#@#@0,装 GitHub App 到目标仓库即可
- 别试图用
localStorage 模拟——换设备、清缓存、多标签页都会丢数据,只适合本地预览
<section></section> 中,且加 aria-label="用户评论"
@#@#@#@#@#@#@#@#@#@0,装 GitHub App 到目标仓库即可
localStorage 模拟——换设备、清缓存、多标签页都会丢数据,只适合本地预览真正麻烦的从来不是“怎么画出评论框”,而是怎么让每层嵌套都有明确的 DOM 父子关系、每个回复都能被屏幕阅读器准确播报、每次提交都不因刷新丢失用户输入——这些细节一旦漏掉,评论区就只是个好看但不可用的空壳。











