Install
openclaw skills install @thcjp/html-toolkit-freeA free HTML tool for personal developers to detect and fix common issues in layout, forms, accessibility, link security, and basic SEO metadata.
openclaw skills install @thcjp/html-toolkit-free---slug: html-toolkit-free name: html-toolkit-free version: 1.0.1 displayName: HTML 工具箱 summary: "面向个人开发者的 HT" license: Proprietary edition: free description: 面向个人开发者的 HTML 常见错误规避工具。核心能力:,可处理提升工作效率
布局抖动预防与表单陷阱规避
可访问性缺口(跳转链接、scope、aria)
链接安全与 SEO 元数据
原生元素优先(dialog/details)
适用场景:
个人站点 HTML 质量自检
单页表单与可访问性修复
SEO 元数据基础配置
差异化: 免费版聚焦单页 HTML 常见坑规避,提供可访问性与表单清单,零成本自检' tags:
本工具帮助个人开发者规避 HTML 常见错误:布局抖动、表单陷阱、可访问性缺口、链接安全与 SEO 元数据。提供原生元素优先建议,适合单页自检.
| 能力 | 说明 | 免费版范围 |
|---|---|---|
| 布局抖动 | img 尺寸与 aspect-ratio | 基础 |
| 表单陷阱 | autocomplete、fieldset、inputmode | 常见项 |
| 可访问性 | 跳转链接、scope、aria-hidden | 基础 |
| 链接安全 | noopener、nofollow ugc | 全覆盖 |
| SEO 元数据 | canonical、og、twitter | 基础 |
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置. |
用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作用config_options参数进行配置.
处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志.
config_options参数,支持修改/重置/导入操作用output_format参数进行配置.
处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志.
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:面向个人开发者的、HTML、常见坑规避工具、覆盖可访问性与表、常见错误规避工具、布局抖动预防与表、单陷阱规避、可访问性缺口、链接安全与、原生元素优先、dialog、details等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.<form>
<fieldset>
<legend>通知偏好</legend>
<label><input type="radio" name="notify" value="email"> 邮件</label>
<label><input type="radio" name="notify" value="sms"> 短信</label>
</fieldset>
<input type="email" autocomplete="email" inputmode="email" enterkeyhint="send">
<button type="submit">提交</button>
</form>
<!-- 外链必加 noopener noreferrer -->
<a href="https://example.com" target="_blank" rel="noopener noreferrer">外链</a>
<!-- 用户生成内容加 nofollow ugc -->
<a href="https://user-site.com" rel="nofollow ugc">用户链接</a>
<!-- 模态用 dialog:内置焦点陷阱与 ESC -->
<dialog open>
<p>内容</p>
<form method="dialog"><button>关闭</button></form>
</dialog>
# ...
<!-- 手风琴用 details:无需 JS,默认可访问 -->
<details>
<summary>常见问题</summary>
<p>答案内容</p>
</details>
以下场景HTML 工具箱不适合处理:
需要消息发送、通知推送、邮件短信、通信集成时使用。不适用于非本工具能力范围的需求.
<head>
<link rel="canonical" href="https://example.com/page">
<meta property="og:image" content="https://example.com/og.png">
<meta name="twitter:card" content="summary_large_image">
</head>
<body>
<a href="#main" class="skip">跳到主内容</a>
<nav><!-- 导航 --></nav>
<main id="main"><!-- 主内容 --></main>
</body>
width/height 让浏览器提前预留空间.type="submit" 会触发表单提交,非提交按钮写 type="button".target="_blank" 配 rel="noopener noreferrer".<th scope="col"> 让屏幕阅读器关联表头.<dialog>/<details> 就别写 JS.Q1:为什么图片加载会跳位?
A:没设 width/height,浏览器不知预留多少空间。加上尺寸或 aspect-ratio.
Q2:button 点击触发了提交?
A:默认 type="submit",非提交按钮要写 type="button".
Q3:og:image 不显示?
A:og 图需要绝对 URL,相对路径在社交平台会失败.
Q4:免费版支持全站审计吗?
A:不支持。全站批量审计与 WCAG 合规为专业版能力.
Q5:aria-hidden 能用在按钮上吗?
A:不能。aria-hidden 用于装饰图标,交互元素用了会让屏幕阅读器忽略它.
<form>
<!-- label 显式关联 -->
<label for="email">邮箱</label>
<input id="email" type="email" autocomplete="email"
required aria-describedby="email-hint">
<p id="email-hint">用于接收通知,不会公开</p>
# ...
<!-- fieldset 分组单选 -->
<fieldset>
<legend>通知方式</legend>
<label><input type="radio" name="notify" value="email"> 邮件</label>
<label><input type="radio" name="notify" value="sms"> 短信</label>
</fieldset>
# ...
<button type="submit">提交</button>
</form>
<!-- 方式一:显式尺寸 -->
<img src="hero.jpg" width="1200" height="630" alt="产品展示">
# ...
<!-- 方式二:aspect-ratio -->
<img src="hero.jpg" alt="产品展示" style="aspect-ratio: 1200/630; width: 100%;">
| 需求 | 原生方案 | 优势 |
|---|---|---|
| 模态框 | <dialog> | 内置焦点陷阱、ESC 关闭 |
| 手风琴 | <details> | 无需 JS、默认可访问 |
| 进度条 | <progress> | 语义化、可访问 |
| 下拉菜单 | <select> | 原生键盘支持 |
| 标签页 | :target + 锚点 | 纯 CSS 实现 |
[ ] 页面只有一个 <h1>
[ ] 标题层级不跳级(h1→h2→h3)
[ ] 导航用 <nav>,主内容用 <main>
[ ] 图片有 alt(装饰图 alt="")
[ ] 表单 label 关联 input
[ ] 表头用 <th scope>
[ ] 外链加 rel="noopener noreferrer"
<head>
<title>页面标题 - 品牌</title>
<meta name="description" content="150 字内页面摘要">
<meta property="og:title" content="分享标题">
<meta name="twitter:card" content="summary_large_image">
</head>
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "HTML 工具箱处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "htmlkit"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}