Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Frontend checklist #26

Open
wants to merge 364 commits into
base: master
Choose a base branch
from
Open

Frontend checklist #26

wants to merge 364 commits into from

Conversation

ldanet
Copy link

@ldanet ldanet commented Nov 3, 2020

Frontend project checklist

Couldn't find issues so putting it as a dummy PR 🤷‍♀️

Launch approach

  • Have you considered a Soft Launch or Hard Launch? Often sites have a password on them until launch (Hard Launch), which means that testing favicons and social media integration may be difficult. Because of this we prefer a Soft Launch where the site is public before any announcement of the site launch. Not applicable

The project's README.md contains

  • Project installation instructions.
  • Links to all deploy environments and any associated Git branch names.
  • Links to CI, Jira/Trello, Harvest project, project run sheet, Google Drive folder, Figma/Zeplin, other.
  • Expected Browser support and accessibility support. Copy browser-device-support.md into your README.md and modify to suit.
  • Any debugging tricks or quirks that might be useful for future devs.

Project structure

Code quality

  • Try a fresh install of the project (preferably in a new VM or on a different machine) to ensure it can be installed from scratch... eg, that all dependencies are referenced and not implicit.
  • Clean up commented/unnecessary code.
  • Check all TODO and FIXME comments in the code are still relevant.
  • Unintentional console logs statements removed. All debugger statements removed.
  • Code comments to document quirks or odd workarounds / compromises as appropriate.

Testing

  • Site tested in all relevant browsers and devices.
  • Site works with adblocking software (ie, uBlock).
  • Site works with JavaScript turned off, or the sections that do not work are indicated to the user via messages in <noscript> tags or similar.
  • Site has a favicon.ico.

HTTP

  • HTTP to HTTPS redirect exists, with Strict-Transport-Security.
  • CSP
  • Static files are cache-busted with a unique hash (eg. main.4hjk54j6.js) in production JS/CSS/etc. and have HTTP headers to cache for a long time (exact length at your discretion). Check this with PageSpeed or GTmetrix) on the live site.

HTML

  • Page translation by Chrome is disabled if appropriate <meta name="google" content="notranslate"> (more). Sometimes clients take the blame for bad translations and it's better to just disable it, but this is a judgement call.
  • 404 page exists and is styled.
  • 500 page exists and is styled.
  • Maintenance page exists and is styled, if relevant.

CSS

  • Ensure form controls are dark theme compatible. Ie, that you don't rely on default background colours for form controls. Test this by setting input,select,textarea {background:black} as the first CSS rule and see if the rest of the site's styles override it correctly.
  • Print styles are defined and tested on all templates / pages (if relevant).
  • CSS classes use a consistent naming methodology (BEM).
  • No vendor prefixes or IE filters in Sass (autoprefixer should handle this).

JS

  • Polyfills are included if appropriate. Consider isolating polyfills from the rest of the codebase (ie, in a polyfills.tsx file) so that they're easier to remove in the future.

Accessibility

  • Make sure all pages, in all states, are keyboard navigable.
  • Body copy and visuals have enough contrast according to WCAG guidelines https://leaverou.github.io/contrast-ratio/ and http://lowvision.support/ .
  • <html> element has attribute lang="en-nz" or lang="mi" (not `lang="mi-nz"). Screen readers such as NVDA can pronounce Te Reo with these hints.
  • Current WCAG compliance if possible. The following list is not exhaustive and is only meant to prompt you to consider common issues (a full WCAG audit may be appropriate):
  • Pagination with rel=”next” and rel=”prev” attributes.

Fonts

  • All of the fonts used on the project are correctly licensed, at the appropriate license level (expected pageviews/month).
  • If relevant, Analytics email alerts are set up when audience levels go over the fonts' license thresholds.

Mobile

  • Site uses a mobile-friendly, zoomable viewport, if possible.
  • Platform-specific (Apple,Android, Windows, etc) meta tags and favicons are added and checked with the Favicon checker.

Performance

  • Test site in Chrome's Lighthouse (Devtools | Audits). While we don't have any specific targets (ie, 'must be above 90') across all projects use this tool to find areas for optimisation. Eg:
    • CSS/JS files are minified in production (bonus points for HTML too).
    • if images are unoptimised use ImageOptim/SVGOMG or similar to compress them.

Security

  • OWASP Top 10... see if anything there is relevant to your site.
  • Data is sanitised before display (ie, User generated content) to prevent exploits such as XSS.
  • Links with target="_blank" use rel="noopener noreferrer" to avoid security problems. More info.
  • Forms use CSRF tokens when they mutate state (POST/PUT/DELETE, eg. editing a user/booking/listing’s data). This is more a BED issue.
  • Form fields use the correct input types for the appropriate mobile keyboard.

SEO / SMO

  • Canonical URL redirect exists, if relevant (eg. example.comwww.example.com).
  • Run site url through the Facebook debugger (https://developers.facebook.com/tools/debug/) to check it will appear correctly if shared.
  • Ensure that <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> is only on the correct pages.
  • Ensure meta tags, OpenGraph tags, Twitter card tags, and descriptions are set.
  • Ensure the social meta tags only use a default sharing image if there is no page-specific image to use.
  • Significant UI states (tabs, modals, etc) should be tracked in the URL via query parameter or the hash or else search engines might not index them.
  • Google Tag Manager or Google Analytics are loaded.
  • Check analytics are configured in development with a development property.
  • Check analytics are configured in production with the production property on the live site.
  • Check the relevant client-side interactions are tracked with events.
  • Page and event tracking is being displayed correctly in the GA dashboard.

Tickets

  • Appropriate labels set on GitHub or Jira.

Infra

  • CI runs tests
  • Production site has Sentry tracking.

You made it to the end! Whoo, high five my friend! Now go treat yourself to a drink 🍹, a hug, or whatever floats your waka 🌈. Don’t forget to let your team know that you’ve got this under control, and be proud of that top-notch site you just built.

Juliet-Brown and others added 9 commits June 21, 2022 16:09
* make img caption smaller
* update caption
Bumps [jquery-ui](https://github.com/jquery/jquery-ui) from 1.13.1 to 1.13.2.
- [Release notes](https://github.com/jquery/jquery-ui/releases)
- [Commits](jquery/jquery-ui@1.13.1...1.13.2)

---
updated-dependencies:
- dependency-name: jquery-ui
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [terser](https://github.com/terser/terser) from 4.8.0 to 4.8.1.
- [Release notes](https://github.com/terser/terser/releases)
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](terser/terser@v4.8.0...v4.8.1)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add a missing setting - DEFAULT_AUTO_FIELD, blacken settings

* Upgrade to wagtail 2.16

* Update requirements, resolve dependency conflicts

* Correct module imports, lint changed files

* Undo accidental change

* fix the test in the pipline related to search

* remove deprecated search module

* Add new migration files

* Convert the unicode to text

* Add the check before run the migration

* Removal of special-purpose field panel types and change base_url

* update the test for the blogpage

Co-authored-by: Andrew Calder <[email protected]>
Co-authored-by: Andrew Calder <[email protected]>
Co-authored-by: aaronhaslett <[email protected]>
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.0 to 1.4.2.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.2/CHANGELOG.md)
- [Commits](webpack/loader-utils@v1.4.0...v1.4.2)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.