跳到正文
cccskills
免费在 GitHub 公开中文介绍

frontend-checklist-global

依据Front-End Checklist的386条规则检查前端代码或公开页面,涵盖无障碍、性能和SEO等方面,整理有依据的问题及具体修正方法。

原文查看原文说明

Use when auditing or improving any frontend codebase against the full Front-End Checklist rule corpus through one entry point.

实测评分 未实测

查看安装方法

适用场景

  • 发布前检查页面
  • 审查表单与交互组件代码
  • 检查性能和安全性
  • 创建限定范围的检查清单

中文介绍

功能

依据Front-End Checklist的386条规则检查前端代码和公开页面,涵盖无障碍、CSS、HTML、图片、JavaScript、性能、隐私、安全和SEO等方面。获取问题对应的规则及修正方法,将具体位置与证据联系起来,说明问题所在。

适用场景

适合发布前的页面检查,也适合针对表单、图片或动画开展专项审查。优先报告能够从所提供代码中直接确认的问题,并避免将合理实现误判为问题,例如装饰性图片使用空的alt文本,或使用Next.js的元数据API。

使用示例

  • “请检查这个公开URL,汇总优先级较高的问题和修正建议。”
  • “请审查这个表单,列出代码能够直接证实的问题。”
  • “请创建一份只针对性能和安全性的检查清单。”

注意事项

规则通过Front-End Checklist的MCP工具获取。MCP是一种让智能体使用外部工具的连接方式。检查公开页面使用audit_url,检查代码使用review_code;对于未提供的上下文,不作确定性判断。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

文档检查

AI 根据 SKILL.md 的内容检查了需要注意的操作和使用前提。评分只依据实际运行的结果(实测对比)。

安全性发送数据、删除文件、执行命令等是否有说明
B部分不足代码会传给MCP的review_code工具,但未说明提交范围和机密信息的处理方式。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足依赖MCP工具,但所提供资料未包含连接配置步骤。

不计入评分。 由 AI(OpenAI Codex)于 2026年10月23日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

包含的文件(2)

  • SKILL.md12.4 KB
  • references/categories.md8.4 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Front-End Checklist Global Audit

This skill connects one entry point to all 386 Front-End Checklist rules. Use MCP retrieval instead of trying to recall rules from memory.

Workflow

  1. Start with review_code for pasted code, file contents, or focused code review.
  2. Use audit_url for a public page when you need rendered HTML audited quickly.
  3. Narrow or expand scope with search_rules, list_categories, get_workflow, or get_quick_reference.
  4. For each issue, use get_rule, fix_rule, or explain_rule to give exact remediation.
  5. If a checklist is a better fit than ad hoc search, use get_checklist_rules.

Audit Stance

  • Be conservative. Prefer fewer, stronger findings over speculative breadth.
  • Only report an issue when the code or markup shown supports it directly.
  • In small component or route audits, prefer the strongest 1-2 supported findings over listing every possible enhancement.
  • Do not infer business intent from a snippet alone. Example: do not assume a field is required unless the code or surrounding copy makes that explicit.
  • Do not treat alt="" as an issue by default; empty alt can be correct for decorative images.
  • When an image is explicitly decorative, prefer zero findings unless the snippet shows a concrete problem rather than a hypothetical optimization.
  • If you see an isolated decorative image like <img ... alt="" aria-hidden="true">, treat it as a zero-issue pattern unless the snippet also shows real evidence of layout instability.
  • Do not raise low-confidence preference tweaks as findings when the snippet is otherwise sound. Prefer silence over weak nitpicks.
  • Do not treat autocomplete="off" as a defect by itself unless the snippet shows a stronger user-harm or security reason to flag it.
  • In link-preview cards, decorative preview images and favicons may be safe when nearby visible text already names the destination.
  • Do not treat React or JSX fragments as full HTML documents unless the snippet includes real document context like <html>, <head>, or <body>.
  • When reviewing Next.js or metadata-driven page files, consider metadata, viewport, and generateMetadata APIs before claiming head-tag omissions.

Coverage Checklist

  • Forms: check labels, accessible button names, explicit button types, autocomplete hints, password-field autocomplete, and validation semantics that are explicit in the code.
  • Images: check width/height, loading, srcset/sizes, and whether image semantics are clearly meaningful or decorative. Do not assume tiny SVG logos or clearly decorative assets must be lazy-loaded, and do not demand explicit dimensions for tiny ornamental dividers unless the snippet shows a real layout-shift risk. If an image is both decorative and hidden from assistive tech, bias strongly toward no finding.
  • Metadata: check title placement, canonical-url behavior, meta descriptions, Open Graph coverage, and structured data only when the file is responsible for metadata.
  • Motion: check expensive animated properties, prefer transform/opacity, and require prefers-reduced-motion handling for persistent motion.
  • Motion: when counters or visual widgets animate every frame, assess both reduced-motion support and whether the animation strategy adds unnecessary main-thread work.
  • Security: check target="_blank" links for noopener noreferrer, insecure form actions, password input best practices, and blocking third-party scripts.
  • Structure: check duplicate ids, list semantics, and table headers conservatively. For simple tables, column-header associations are stronger findings than speculative row-header or outer-layout landmark issues.
  • Structure: when a visible heading already introduces a simple table, treat missing captions as a lower-confidence improvement than missing header associations.

Rule-Derived Highlights

Set explicit width and height on images

  • Reserve findings for meaningful content images; decorative micro-SVGs or ornament-only assets are low-priority exceptions when CSS already reserves stable space
  • Example low-risk exception: <img src="/divider.svg" alt="" aria-hidden="true"> should not be flagged on its own without evidence of visible layout shift
  • Always set width and height attributes on <img> matching the image's intrinsic dimensions
  • Pair with height: auto in CSS to keep the image fluid while preserving the aspect ratio
  • Missing dimensions are the leading cause of Cumulative Layout Shift (CLS) from images

Hide decorative elements from assistive technology

  • Use alt='' (empty) for decorative images—not alt='image' or missing alt
  • Add aria-hidden='true' to decorative SVGs and icons
  • Use CSS background-image for purely decorative visuals
  • Role='presentation' removes semantic meaning from elements
  • Do not automatically raise performance findings on decorative micro-assets unless the snippet shows real layout instability

Use transform and opacity for animations

  • Only transform and opacity can be composited on the GPU without triggering layout
  • Use will-change: transform sparingly to promote an element to its own compositor layer
  • Prefer CSS transitions and animations over JavaScript animation libraries for simple effects
  • Respect prefers-reduced-motion to disable animations for users who need it

Respect reduced motion preferences

  • Use prefers-reduced-motion media query to disable non-essential animations
  • Never flash content more than 3 times per second (seizure risk)
  • Replace motion with opacity/color transitions when reduced motion is enabled
  • Provide user controls to pause or disable animations

Use semantic table markup for screen readers

  • Use <th> elements for headers with scope='col' or scope='row'
  • Add <caption> to describe the table's purpose
  • Never use tables for layout—use CSS Grid or Flexbox instead
  • Use id/headers for complex tables with merged cells
  • For simple tables with a clear adjacent section heading, missing scope is often a stronger finding than missing <caption>

Define proper table headers

  • Use <th> for all table headers, not <td>
  • Apply scope="col" or scope="row" to clarify header relationship
  • Ensure every data cell is associated with at least one header
  • In simple tables, prefer fixing header associations before escalating to caption-level recommendations
  • Missing scope="col" on a straightforward header row is often the clearest first fix

Minimize costly DOM read/write operations

  • Never interleave DOM reads (offsetHeight, getBoundingClientRect) with DOM writes (style changes)
  • Batch all reads first, then all writes
  • Use requestAnimationFrame for visual updates
  • Use DocumentFragment or innerHTML for bulk DOM insertion
  • Avoid per-frame React state updates across many visible components when a simpler CSS or reduced-frequency approach would work

Validate forms accessibly

  • Associate error messages with fields using aria-describedby
  • Use aria-invalid to indicate validation state
  • Mark required fields programmatically with required or aria-required
  • Provide inline error messages near the field
  • Don't rely solely on color to indicate errors

Secure password input fields

  • Use type='password' with correct autocomplete attribute
  • Provide accessible show/hide toggle for password visibility
  • Show password strength indicator with requirements
  • Never store or transmit passwords in plain text
  • Support password managers with proper input names

Provide visible custom focus indicators

  • Never use outline: none or outline: 0 without a visible :focus-visible replacement
  • Use :focus-visible instead of :focus to show indicators only during keyboard navigation
  • Focus indicators must have 3:1 contrast ratio against adjacent colors (WCAG 2.2)
  • Provide at least 2px solid outline with an offset for a high-quality focus ring
  • If a focus ring is drawn with pseudo-elements, verify it is anchored to the correct positioned element and not clipped by overflow: hidden

Known Safe Patterns

Decorative Divider

  • Safe example: <img src="/divider.svg" alt="" aria-hidden="true">
  • Treat this as a safe decorative pattern by default. Do not flag alt text or missing dimensions unless the snippet also shows a real layout-shift risk.

Client-Handled React Form

  • Safe example: <form onSubmit={event => event.preventDefault()}><label htmlFor="q">Search</label><input id="q" type="search" /></form>
  • Do not require method or action when client-side submit handling is explicit and the form controls are otherwise accessible.

Next Metadata API

  • Safe example: export async function generateMetadata() { return { title: 'Docs', description: 'Reference' } }
  • Do not infer missing canonical-url, meta description, or Open Graph tags just because literal <head> markup is absent from the component file.

Preview Card Images

  • Safe example: <img src={resource.image} alt="" className="object-cover" /><img src={favicon} alt="" width={20} height={20} />
  • In link-preview or resource-card UIs, decorative preview/favicons can legitimately use empty alt when adjacent text already provides the destination name. Do not invent responsive-image or layout-shift defects for tiny favicon assets without stronger evidence.

Aspect-Ratio Media Wrapper

  • Safe example: <div className="aspect-2/1 overflow-hidden"><img className="object-cover w-full h-full" ... /></div>
  • When a wrapper already reserves media space with a stable aspect ratio, do not automatically raise a missing dimensions finding for the child preview image.

Pseudo-Element Focus Ring

  • Safe example: focus-visible:outline-none focus-visible:after:ring-2 after:absolute after:inset-0
  • If focus styling depends on a pseudo-element, verify the ring is anchored to the correct positioned element. A removed native outline is only safe when the replacement ring is clearly reliable.

Per-Frame React Counter Animation

  • Safe example: requestAnimationFrame(animate); setCount(Math.floor(eased * target))
  • Repeated requestAnimationFrame state updates across multiple components are a concrete performance concern when shown directly in the code.

Simple Data Table Headers

  • Safe example: <thead><tr><th>Priority</th><th>Rule</th><th>Title</th></tr></thead>
  • For simple data tables, prefer conservative column-header findings before speculating about row headers or outer-layout landmarks.

Adjacent Heading + Table

  • Safe example: <h2>Issues</h2><table><thead>...</thead><tbody>...</tbody></table>
  • A nearby visible section heading may already provide table context. Prefer scope/header association findings before requiring a caption unless the table purpose is ambiguous.

Conflict Resolution

  • If decorative-image guidance and dimensions guidance conflict, decorative guidance wins unless the snippet shows visible layout instability.
  • Example zero-issue pattern: <img src="/divider.svg" alt="" aria-hidden="true"> in an isolated component should not be flagged for alt text or dimensions unless the snippet also shows real layout-shift evidence.
  • If a form is clearly handled client-side with onSubmit, do not require traditional server-post method or action attributes.
  • If a file uses Next.js metadata APIs, do not infer missing head tags from the absence of literal <meta> or canonical-url markup.

Coverage

  • accessibility: 89 rules (9 critical, 25 high)
  • css: 31 rules (10 high)
  • html: 34 rules (3 critical, 12 high)
  • i18n: 5 rules
  • images: 25 rules (1 critical, 15 high)
  • javascript: 26 rules (1 critical, 12 high)
  • performance: 43 rules (1 critical, 22 high)
  • privacy: 5 rules (2 high)
  • security: 22 rules (4 critical, 10 high)
  • seo: 93 rules (19 high)
  • testing: 13 rules (7 high)

Evaluation Standard

  • Prefer findings tied to exact files, routes, selectors, or code snippets.
  • Prioritize critical and high issues first.
  • Explain uncertainty instead of overstating when the snippet does not show enough context.
  • Avoid generic advice when the MCP tools can retrieve a rule or fix prompt.
  • When no issue is found automatically, use search_rules to broaden review coverage before concluding clean.

See references/categories.md for category coverage and tool routing.

MCP docs: https://frontendchecklist.io/mcp

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

404-page

免费有简介

创建并检查自定义404页面,通过搜索、导航和主要页面链接,为访问失效或已迁移页面的访客指明去向,同时核对页面显示内容与HTTP状态码。

  • 创建自定义404页面
  • 完善失效链接的搜索与导航
  • 检查不存在的页面是否返回200
thedaviddias/Front-End-Checklist7.5万2026年10月6日 更新

about-page

免费有简介

检查或创建说明网站用途与运营方的介绍页面,核对组织历史、使命、专业能力及联系方式,并检查实际页面输出,找出信息缺漏。

  • 检查现有的网站介绍页面
  • 创建介绍组织与使命的页面
  • 核对页面输出中的运营方信息
thedaviddias/Front-End-Checklist7.5万2026年10月6日 更新

accessibility-testing

免费有简介

为页面和共用组件添加自动无障碍测试,检查现有测试的覆盖缺口,并将检查接入持续集成流程,以发现结构、属性问题及修改引入的新问题。

  • 检查共用组件的测试覆盖范围
  • 为页面交互测试添加无障碍检查
  • 在持续集成中运行无障碍检查
thedaviddias/Front-End-Checklist7.5万2026年10月6日 更新

检查从登录、多因素认证到账户恢复的完整流程,找出禁止粘贴、验证码必须手动输入等使用障碍,并协助改进认证方式。

  • 检查完整登录流程的无障碍性
  • 确认验证码粘贴与自动填充
  • 检查密码重置与账户恢复流程
thedaviddias/Front-End-Checklist7.5万2026年10月6日 更新

检查表单错误、完成通知和实时更新能否通过屏幕阅读器传达,核对实际显示的HTML属性、通知停留时间及关闭方式,并指出具体问题。

  • 检查表单错误是否被朗读
  • 调整完成通知的显示时间
  • 检查实时通知
thedaviddias/Front-End-Checklist7.5万2026年10月6日 更新

accessible-tables

免费有简介

检查表头与数据单元格的对应关系,将 HTML 调整为屏幕阅读器也能传达数据含义的结构。从简单表格到包含合并单元格的复杂表格都可检查。

  • 检查表格的屏幕阅读器支持
  • 检查合并单元格与表头的关联
  • 审查设计系统中的表格
thedaviddias/Front-End-Checklist7.5万2026年10月6日 更新

查看 thedaviddias 的全部技能

报告此技能的问题