Closed alexandersimoes closed 6 years ago
I just reviewed this list, updating a few meta tags here and there. A lot of this list falls under sort of "best practices" or "canon should handle this", so I don't think we should worry about the unchecked items here for this November release.
It would be nice in the future to create our own "canon release" checklist for all of the non-canon specific things: https://github.com/Datawheel/datawheel-canon/issues/51
Head
Meta tag
The next 3 meta tags (Charset, X-UA Compatible and Viewport) need to come first in the head.
favicon.ico
, put it at the root of your site. Normally you won't need to use any markup. However, it's still good practice to link to it using the example below. Today, PNG format is recommended over.ico
format (dimensions: 32x32px).Minimum required xml markup for the browserconfig.xml file is as follows:
rel="canonical"
to avoid duplicate content.HTML tags
lang
attribute of your website is specified and related to the language of the current page.[ ] RSS feed: If your project is a blog or has articles, an RSS link was provided.
[ ] Inline critical CSS: CSS which styles content that is immediately visible during pageload ("above the fold content") is called "critical CSS". It is embedded before your principal CSS call and between
<style></style>
in a single line (minified).[x] CSS order: All CSS files are loaded before any JavaScript files in the
<head>
. (Except the case where sometimes JS files are loaded asynchronously on top of your page).Social meta
Facebook OG and Twitter Cards are, for any website, highly recommended. The other social media tags can be considered if you target a particular presence on those and want to ensure the display.
β¬ back to top
HTML
Best practices
[ ] Error pages: Error 404 page and 5xx exist. Remember that the 5xx error pages need to have their CSS integrated (no external call on the current server).
[x] Noopener: In case you are using external links with
target="_blank"
, your link should have arel="noopener"
attribute to prevent tab nabbing. If you need to support older versions of Firefox, userel="noopener noreferrer"
.HTML testing
β¬ back to top
Webfonts
[ ] Webfont size: Webfont sizes don't exceed 2 MB (all variants included).
[ ] Webfont loader: Control loading behavior with a webfont loader
β¬ back to top
CSS
<style>
tags or using inline CSS: only use for valid reasons (e.g. background-image for slider, critical CSS).Performance
CSS testing
[ ] Responsive web design: All pages were tested at the following breakpoints: 320px, 768px, 1024px (can be more / different according to your analytics).
[ ] CSS Validator: The CSS was tested and pertinent errors were corrected.
[ ] Desktop Browsers: All pages were tested on all current desktop browsers (Safari, Firefox, Chrome, Internet Explorer, EDGE...).
[ ] Mobile Browsers: All pages were tested on all current mobile browsers (Native browser, Chrome, Safari...).
[ ] OS: All pages were tested on all current OS (Windows, Android, iOS, Mac...).
[ ] Pixel perfect: Pages are close to pixel perfect. Depending on the quality of the creatives, you may not be 100% accurate, but your page needs to be close to your template.
β¬ back to top
Images
Best practices
width
andheight
attributes on<img>
if the final rendered image size is known (can be omitted for CSS sizing).<img>
have an alternative text which describe the image visually.β¬ back to top
JavaScript
Best practices
.min
suffix).async
or deferred usingdefer
attribute.<html>
tag.JavaScript testing
β¬ back to top
Security
Scan and check your web site
Best practices
β¬ back to top
Performance
Best practices
[ ] Minified HTML: Your HTML is minified.
[ ] Lazy loading: Images, scripts and CSS need to be lazy loaded to improve the response time of the current page (See details in their respective sections).
[ ] Cookie size: If you are using cookies be sure each cookie doesn't exceed 4096 bytes and your domain name doesn't have more than 20 cookies.
Preparing upcoming requests
dns-prefetch
.preconnect
.prefetch
.<body>
) in advance usingpreload
.Performance testing
β¬ back to top
Accessibility
Best practices
Headings
Landmarks
<header>
hasrole="banner"
.<nav>
hasrole="navigation"
.<main>
hasrole="main"
.Semantics
Form
aria-label
instead.Accessibility testing
β¬ back to top
SEO
β¬ back to top
https://github.com/thedaviddias/Front-End-Checklist