📜 ⬆️ ⬇️

Checklist layout. What can be given to the client, and what should be redone

Perfect layout You are PM. How to find out if layout is ready for real use?
You are a customer. How to make sure that the work is done with high quality?
How to evaluate the quality of the layout?

When I became a team lead, and later, PM, the task before me was to check the layout of our projects. It was necessary to work out formal, easy-to-check criteria, the compliance of the code with which, should have given some kind of guarantee that there would be no packs and neither the client nor the programmers would say then “WTF?”.

The client does not care how beautiful your code is, but the result is important to him. The firm needs a quality code, since it is safer and will be easier to maintain in the future.
')
Requirements should have been such that it is easier to comply with them, creating a quality layout, and not shit-code. I made such a checklist for a year and a half. Over the past six months nothing has been added to it. So the most important thing is taken into account.

So what is this list?

The short version is now available on html5checklist.com (github), where you can make pull-requests.

Update History:



On Habré there was an article about " Requirements for html-layout ." But this is the TOR for the performer / coding agreement / good taste advice, but not a checklist: is the work ready and can it be accepted. It is good, but alas, its compliance does not guarantee that there will be no problems.



In order to give the layout to the client, it is enough to comply with the first 5 points.
For delivery to production - first 6.

  1. Matching layout
  2. Cross-Browser, Encoding and DOCTYPE
  3. Validity (including CSSLint and JSHint), accessibility, microformats
  4. Independence of blocks in CSS: cascade minimization, use of BEM techniques
  5. The site should look fine in all standard resolutions from 1024 and up, not have a horizontal scroll and fit into the screen of mobile devices
  6. Correct work when typing in real text, reliability of layout
  7. Use of preprocessors and build systems
  8. Check and optimize download speeds: github.com/ihorzenich/WebPerformanceChecklist
  9. Retina support
  10. Availability of Win / Mac / Linux Analog Fonts
  11. Availability with off (loading) pictures
  12. HTML5 forms, linking, validation
  13. Semanticism. The lack of nonsense in html and css, uniformity, accuracy
  14. The correct header structure (H1, H2, ..., etc., and TITLE)
  15. Performance with javascript off
  16. Operate with Flash off
  17. No bugs with larger font
  18. And the last point is minor checks (see below for details).



Item number 1. Compliance with the layout


Pixel perfect The location of the blocks should be 1: 1 compared to the layout. Up to 5px for text is allowed. Allowed and even welcome to edit the size and location of crookedly drawn blocks (the difference in size is 1-2px on different pages).

It is clear that with changes in content, block sizes may vary (for example, in height), this is normal. We use Pixel Perfect not for pixel-by-pixel zadrotstvo (adequate PM should not delay the delivery of the project, wasting time, and therefore the company's money, on licking each pixel), but to check that all the basic blocks are where they are needed, their sizes, indents - correspond mockup.

Checked in Firefox via plugin addon Pixel Perfect . To test in other browsers, use ModularGrid , but in principle it is enough just to look with a pointed eye, if the differences are noticeable - they will be evident.



â„–2. Cross-Browser, Encoding and DOCTYPE


HTML5
  1. Encoding: UTF-8
    Why you need: UTF-8 is versatility and compatibility. This is a modern standard, it is not even the future, but the present.
    How it is checked: in FF Tools → Information about the page, in the appeared window should be written "Encoding: UTF8". This encoding should be used for all files: html, css, js (if files in different encodings may have problems)
  2. DOCTYPE: HTML5
    : doctype . doctype (canvas, header, article,...) , ( embed). HTML5 — , XHTML-. .

    : , <!DOCTYPE HTML>.
  3. :
    • Firefox ()
    • Chrome ()
    • Safari () Mac « Mac'» ( , - ) Preferences→Appearance, «Font Smoothing» Medium ( «Windows Standart»).
    • iPhone ( landscape portrait , .. ) + Android. viewport.
    • Opera () 12- Presto, —
    • IE7+ ( IE6 Google Frame, - )
    • Opera Mini ( Opera Developer Tools→Opera Mini Simulator, Java , : Opera 9.64→- , 9.64 JS Opera Mini, )

    .



â„–3. ( CSSLint JSHint), ,


Microformats
  1. js-!
  2. Valid HTML5 . :
    • Word’ ;
    • - ( HTML5 «data-*»).
  3. Valid CSS3CSS 3.0, ( ), ( margin: 10xp) .
  4. . – hCard. hCalendar, XFN, hAtom.
  5. : CSSLint JSHint
IE JavaScript error
js IE – « js-».

? : . , , , … : , , , … — .
© rossomachin

HTML5 , , . «data-» — ! !

SEO, . . ! entry-content, :)

-:


(2012 ) microdata, .

WCAG2 Conformance : WCAG.
, WCAG1 A (Priority 1) – . – WCAG2 Priority 3 (AAA). WCAG1 Priority A — www.cynthiasays.com ( addon Web Developer → → WAI). « »? WCAG . :

WCAG2:


.


CSSLint:


:
<pre // We didn't support IE7!
«box-sizing»: false,
«adjoining-classes»: false,

// Allow Safety CSS Hacks
«star-property-hack»: false, // IE8-
«underscore-property-hack»: false, // IE7-

// Stupid rules
«box-model»: false, // Developers know what is box model!
«empty-rules»: false, // Empty rules are useful for describing the layout
«floats»: false, // Grids can't fully replace floats

// OOCSS didn't suitable for real life. BEM does.
«qualified-headings»: false,
«unique-headings»: false,
«font-sizes»: false


JSHint:


( !) :
— When code is not in strict mode

:
+ jQuery



â„–4. CSS: ,


css FF addon Firebug
, ( ).
, , : , MCSS SMACSS.




â„–5. 1024 ,


Mobile viewport FF addon Web Developer→Resize
:

( ).

. Viewport. : « . ».


â„–6. ,


Wysiwyg , . , <p> ..
! , , — , — .
  1. .
    : , – « ?», « ?».
    , (- ).
  2. .
    : (! - ), , .

.
FF addon Firebug: HTML→Edit – // . normalize.css test.html <body> </body>.

html5- : header, footer, aside, nav, section, article .. , , «» . div . — html5-, «» html5-.


â„–7.


CSS (LESS/Sass/Stylus).
: .less, .sass, .scss, .styl — - .

(Grunt/Gulp) (PostCSS/Autoprefixer).
Gruntfile.js Gulpfile.js


â„–8.


Page Speed , base64 , CSS3 , JPG PNG JS html .
: https://github.com/ihorzenich/WebPerformanceChecklist
:
( , ), ( ) ( ).
© sunnybear.
:

: , headers, minifying – ,

: JPG PNG, Progressive JPG, ( 200-300kb ).

, base64 encode css3- ( ).


â„–9. Retina




â„–10. Win/Mac/Linux-


Alternative fonts , , . , .
Myriad Pro, Arial Narrow.

css “Helvetica”,“Liberation”, “DejaVu”,”Meera”,”Monaco”, “ Century Schoolbook L”,” Nimbus Mono L”, “URW”. .

(css font stack) http://cssfontstack.com/

OS:




â„–11. ()


Disabled Images ( ) , (, img font – alt-, ).
, (GPRS, ).

FF addon Web Developer→Images→Replace Images With Alt Attributes.


â„–12. HTML5 , ,


HTML5 Forms
  1. Label input/select .
    . .
    label – .
  2. HTML5 .
    - , ( ajax), . — javascript, , .
    Opera: javascript, , Submit – .
  3. JS- .
    . , , .
    Opera/Safari/Chrome: javascript, , Submit – .
  4. frontend — .
    Firefox 3.6: javascript, , Submit – .
  5. input type=”email/url/tel”.
    - , iPhone .
    iPhone — : // web/email-.


js-alert’, !
, id — label (a , id ).


â„–13. . html css, ,


Semantics , . , « » ( 2008 ).

:


:



№14. (H1,H2,… .. TITLE)


Document Outline , , . Document Outline SEO.

FF addon Web Developer→Information→View Document Outline. !




â„–15. JavaScript


Disabled JavascriptJS . Opera Mini .
— , 3G js- !

JS. ( ) – JS .

/ JS, - ( <noscript>).

FF addon Web Developer→Disable→Disable JavaScript→All JavaScript.




â„–16. Flash


Disabled Flash Flash. :

Flash iOS-. Flash .

FF flash-: Tools→Add-ons→Plugins→Shockwave Flash→disable.




â„–18.


Big fonts FF:

120dpi 96 «120 dpi em».



, , :


Device Access





â„–19. :


Small Issues


17? , , , , - , !
, – “WTF?” — :)

:



- . ,

Source: https://habr.com/ru/post/114256/


All Articles