前端开发清单是一份在站点/HTML页面发布到生产环境之前需要测试的所有元素的详尽列表。
它基于前端开发人员多年的经验沉淀,以及其他优秀的开源清单。
在Product Hunt上投票或推荐来帮助前端开发清单的推广🌈。
前端开发清单中的所有项目都是大部分项目所必需的, 但某些元素可以省略或者并不是这么重要 (在管理Web应用程序的情况下,你可能并不需要RSS订阅源)。我们选择使用一下3级区分:
- 意味着该项目被推荐,但在某些特定情况下可以省略。
- 意味着该项目是强烈推荐的,但是可能在某些特殊情况下能被省略。某些元素,如果省略将会对性能或SEO方面产生不良影响。
- 意味着项目不能被任何理由省略。你的页面可能会导致部分功能障碍或者产生可访问性以及SEO等问题。测试优先级需要首先考虑这些元素。
某些资源拥有特定的标识符,帮助你去理解清单上不同类型的内容或帮助。
- 📖: 文档或文章
- 🛠: 在线工具/测试工具
- 📹: 媒体或视频内容
注意: 你能在HEAD列表中找到HTML文档
<head>
标签内所有可配置的属性。
<!-- Doctype HTML5 -->
<!doctype html>
接下来三个 meta 标签 (Charset, X-UA Compatible, Viewport) 需要首先在head中声明
<!-- 设置文档的字符编码 -->
<meta charset="utf-8">
<!-- 指示Internet Explorer使用其最新的渲染引擎 -->
<meta http-equiv="x-ua-compatible" content="ie=edge">
<!-- 响应式网页设计viewpoint声明 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 文档标题 -->
<title>网站标题不超过65个字符</title>
<!-- Meta Description -->
<meta name="description" content="Description of the page less than 150 characters">
- Favicons: 每个
favicon
都被创建并正确显示,如果你只有一个favicon.ico
,把它放在你网站的根目录下。 通常来说你不需要做任何操作他就能正常显示。 然而, 使用一下示例中的方法是比较好的做法。不过现在我们推荐使用PNG格式,相比.ico
格式有较好的优势(推荐尺寸: 32x32px)。
<!-- 标准favicon -->
<link rel="icon" type="image/x-icon" href="https://example.com/favicon.ico">
<!-- 推荐favicon格式 -->
<link rel="icon" type="image/png" href="https://example.com/favicon.png">
<!-- Apple Touch Icon -->
<link rel="apple-touch-icon" href="/custom-icon.png">
<!-- Microsoft Tiles -->
<meta name="msapplication-config" content="browserconfig.xml" />
browserconfig.xml文件的最小所需xml标记如下所示:
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square70x70logo src="small.png"/>
<square150x150logo src="medium.png"/>
<wide310x150logo src="wide.png"/>
<square310x310logo src="large.png"/>
</tile>
</msapplication>
</browserconfig>
<!-- 帮助防止重复内容出现 -->
<link rel="canonical" href="http://example.com/2017/09/a-new-article-to-red.html">
<html lang="zh_cn">
<html dir="rtl">
<link rel="alternate" href="https://es.example.com/" hreflang="es">
- RSS feed: 如果你的项目是一个博客或者有大量的文章,可以添加一个RSS链接。
- CSS Critical:
CSS critical
收集并呈现当前页面可见部分的所有CSS。在主要的CSS调用之前以单行(最小化)在<style></style>
中嵌入。
强烈推荐Facebook OG and Twitter Cards。如果你针对某些特定的存在并希望确保显示,也可以考虑其他社交媒体的meta。
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/page.html">
<meta property="og:title" content="Content Title">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:description" content="Description Here">
<meta property="og:site_name" content="Site Name">
<meta property="og:locale" content="en_US">
- 📖 A Guide to Sharing for Webmasters
- 🛠 使用Facebook OG testing测试你的页面。
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@site_account">
<meta name="twitter:creator" content="@individual_account">
<meta name="twitter:url" content="https://example.com/page.html">
<meta name="twitter:title" content="Content Title">
<meta name="twitter:description" content="Content description less than 200 characters">
<meta name="twitter:image" content="https://example.com/image.jpg">
📖 HTML 参考
-
Noopener: 如果你使用外部链接
target="_blank"
, 你的链接必须有个rel="noopener"
属性,防止制表符的隐藏。如果你需要兼容旧版本的火狐浏览器,请使用rel="noopener noreferrer"
。
-
Desktop Browsers: 所有页面都在桌面浏览器上通过测试(Safari, Firefox, Chrome, Internet Explorer, EDGE...)。
-
Mobile Browsers: 所有页面都在移动端浏览器上通过测试(Native browser, Chrome, Safari...).
- 响应式网站设计: 网站使用响应式设计。
- CSS打印属性: 提供打印样式表,并确保使用正确。
- 预处理器: 你的网站使用css预处理器(推荐Sass).
- 唯一ID: 如果使用了ID,确保ID的唯一性。
- Reset CSS: 使用CSS reset(如reset.css, normalize.css, reboot) (如果你使用的是CSS框架,例如Bootstrap或Foundation,则reset css已被包含在其中)
- 📖 Reset.css
- 📖 Normalize.css
- 📖 Reboot
<div id="js-slider" class="my-slider">
<!-- Or -->
<div id="id-used-by-cms" class="js-slider my-slider">
- CSS embed or line: 避免使用CSS嵌入或内联,仅用于必要的情况(例如: background-image for slider, CSS critical).
- 浏览器内核前缀: 对部分属性加上浏览器内核前缀,生成你浏览器兼容的属性。
🛠 CSS验证器
注意: 想要完整的了解图像优化,可以在Addy Osmani查看免费电子书**图像优化基础**。
- 优化: 所有图像都经过优化并且可在浏览器中正常显示。WebP格式可用于关键页面(如首页)。 All images are optimized to be rendered in the browser. WebP format could be used for critical pages (like Homepage).
- 🛠 Imagemin <<<<<<< HEAD
- 🛠 使用ImageOptim免费优化您的图像。
注意: 许多开发人员认为设置了宽度和高度就不能实现响应式设计,实际上并不是这样的。
- 🛠 Use ImageOptim to optimise your images for free.
- Retina: You provide layout images 2x or 3x, support retina display.
- Sprite: Small images are in a sprite file (in the case of icons, they can be in an SVG sprite image).
- Width and Height: Set
width
andheight
attributes on<img>
if the final rendered image size is known (can be omitted for CSS sizing). - Alternative text: All
<img>
have an alternative text which describe the image visually.
64cf04660eb5001873c139435844efdb83ff88de
- JavaScript安全性:
-
Cookie大小: 如果使用Cookie,确保每个Cookie不超过4096个字节,并且域名下不超过20个Cookie。
<link rel="dns-prefetch" href="https://example.com">
<link rel="preconnect" href="https://example.com">
<link rel="prefetch" href="image.png">
<link rel="preload" href="app.js">
注意: 查看播放列表A11ycasts with Rob Dodson 📹
- banner角色:
<header>
标签中加入role="banner"
属性。 - navigation角色:
<nav>
标签中加入role="navigation"
属性。 - main角色:
<main>
标签中加入role="main"
属性。
- Keyboard navigation: 在你的键盘上以可能出现的操作顺序去测试,确保所有交互式元素都可访问和可用。
- Screen-reader: 所有页面都在屏幕阅读器(VoiceOver, ChromeVox, NVDA or Lynx)中进行了测试。
- Focus style: 如果焦点被禁用,它将被CSS中的可见状态所替代。
- Google Analytics: Google Analytics 正确安装和配置。
- Headings logic: 标题文字有助于了解当前页面的主要内容。
- sitemap.xml:
sitemap.xml
存在并提交到Google Search Console(以前的Google管理员工具)。 - robots.txt:
robots.txt
正确配置,不阻止网页被爬取。
- 🛠 使用Google Robots Testing Tool测试你的
robots.txt
。
- 📖 结构化数据简介 | 搜索 | Google Developers
- 🛠 使用Structured Data Testing Tool测试你的页面。
- 🛠 适用于结构化数据的完整结构列表Schema.org Full Heirarchy
The Front-End Checklist is also available in other languages. Thanks for all translators and their awesome work!
- 🇯🇵 Japanese: miya0001/Front-End-Checklist
- 🇪🇸 Spanish: eoasakura/Front-End-Checklist-ES
- 🇨🇳 Chinese: JohnsenZhou/Front-End-Checklist
- 🇰🇷 Korean: kesuskim/Front-End-Checklist
- 🇧🇷 Portuguese: jcezarms/Front-End-Checklist
- 🇻🇳 Vietnamese: euclid1990/Front-End-Checklist
如果想显示出你的项目遵循了前端开发清单的各项规定,请将此徽章放在项目的README文件上!
[![Front‑End_Checklist followed](https://img.shields.io/badge/Front‑End_Checklist-followed-brightgreen.svg)](https://github.com/thedaviddias/Front-End-Checklist/)
提issue或提交合并请求以建议更改或添加。
前端开发清单 项目有两个分支:
该分支包含README.md
,内容会自动反映到前端开发清单。
网站上。
这个分支将用于对结构和内容进行一些重大更改。不过最好还是使用主分支来修复小错误或添加新项目。
查看所有贡献人员 contributors.
如果您有任何问题或建议,可以通过Gitter或Twitter联系我们: