рд╣рдо рдЖрдкрдХреЛ
Medium.com рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдПрдХ
Indrek Lasn рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред рдХрдЯ рдХреЗ рддрд╣рдд рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд╡реЗрджрди рдпрд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд▓рдн рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП - рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдФрд░ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдкрд╣реБрдВрдЪ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдгред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдЙрдкрд▓рдмреНрдзрддрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддреА рд╣реИ рдмрд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рдРрдк рдФрд░ рдПрдХ рдорд╣рд╛рди рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ? рдкрд╣реБрдБрдЪ рдореЗрдВ!
рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреБрдЫ рдЬрд▓реНрджреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреИрдм рдЬреИрд╕реА рдЧрд░реНрдо рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдиреЗрддреНрд░рд╣реАрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреА рдЖрдкрдХреЗ рдмреНрд▓реЙрдЧ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрддреНрдкрд╛рдж рдХреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдЙрдкрд▓рдмреНрдзрддрд╛ рдкрд░реАрдХреНрд╖рдг рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдХреЛрд░рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдЙрдкрд▓рдмреНрдзрддрд╛ рдкрд░реАрдХреНрд╖рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рджрд░реНрд╢рди
рдЗрдВрдЯрд░рдиреЗрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рдорд╛рд╡реЗрд╢реА рд╕реНрдерд╛рди рдмрди рдЬрд╛рдПрдЧрд╛, рдЬрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣рдореЗрд╢рд╛ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ рдФрд░ "рд╕рд╕реНрддреА" рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЙрдкрд▓рдмреНрдзрддрд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдордп рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреМрд╢рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣ рдЯреАрдо рдХреЛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬ - рдЙрддреНрдкрд╛рдж рд╡рд┐рдХрд╛рд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рд╕рд╛рдЗрдЯреЛрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реИред рдирддреАрдЬрддрди, рдЙрддреНрдкрд╛рдж рдХреЗ рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдЬрдм рд╕рдордп рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреА рд╣реИред
рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ, рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдкрд░реАрдХреНрд╖рдг рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреА рдЯреАрдо рд░реЛрдЬрд╛рдирд╛ рдХрд░рддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг, рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░реАрдХреНрд╖рдг, рдЖрджрд┐)ред рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ рдЙрдкрд▓рдмреНрдзрддрд╛ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдордп рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдмрдЪрдд рд╣реЛрдЧреА, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрдкрдХреЛ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рдиреА рд╕реЗ рднреА рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗрдЧрд╛ред
рдРрдХреНрд╕ рдореИрдирд┐рдлреЗрд╕реНрдЯреЛ
- ax рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИред
- рдЗрд╕рдореЗрдВ рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдмрдЧреНрд╕ рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ рд╣реИ)ред
- ax рд╕рднреА рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдЯреВрд▓, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
- рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдПрдХ рдкреНрд░рдореБрдЦ рдбрд┐рдЬрд┐рдЯрд▓ рдПрдХреНрд╕реЗрд╕ рдХрдВрдкрдиреА ( Deque Systems ) рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред
- рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ / рд╕реНрд╡реАрдХреГрддрд┐ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред
- рдХреБрд▓реНрд╣рд╛рдбрд╝реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреМрди рд╕реЗ рдирд┐рдпрдо рдЪрд▓рддреЗ рд╣реИрдВред
- рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдЖрдВрддрд░рд┐рдХ рд╕реНрдореГрддрд┐ рдЬреБрдбрд╝рдирд╛рд░, рд╕реНрдерд┐рд░ рдЬреБрдбрд╝рдирд╛рд░, рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЖрдИрдлреНрд░реЗрдо рдЕрдирдВрдд рдШреЛрдВрд╕рд▓реЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред
- рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдПрдХ рдЕрддреНрдпрдВрдд рд▓рдЪреАрд▓рд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИред
рд░рд┐рдПрдХреНрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛
GitHub рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдкреГрд╖реНрдардПрдирдкреАрдПрдо рдпрд╛ рдпрд╛рд░реНрди рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
NPM:
npm install --save-dev react-axe
рдпрд╛рд░реНрди:
yarn add react-axe
рд╣рдо рдореЙрдбреНрдпреВрд▓ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ
рд╣рдо рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд░рд┐рдПрдХреНрдЯрдбреЙрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдФрд░ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рд╕рдордп рдХреА рджреЗрд░реА рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдШрдЯрдХ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдкреНрд░рд╛рд░рдВрдн рд╕рдордп рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
const React = require('react'); const ReactDOM = require('react-dom'); if (process.env.NODE_ENV !== 'production') { const axe = require('react-axe'); axe(React, ReactDOM, 1000); }
рдмрд┐рдирд╛ рдврд╛рдБрдЪреЗ рдХреЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
рдкрд╣рд▓реЗ
axe-core
рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
npm install axe-core --save-dev
рдПрдкреАрдЖрдИ рдкреИрдХреЗрдЬ рд╕рдВрд░рдЪрдирд╛
рдХреБрд▓реНрд╣рд╛рдбрд╝реА-рдХреЛрд░ рдПрдкреАрдЖрдИ рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
axe.js
- рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдЗрдЯ (рдПрдкреАрдЖрдИ) рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓;axe.min.js
рдЙрдкрд░реЛрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ iFrame рдЬреБрдбрд╝рдирд╛рд░ рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВред
<script src="node_modules/axe-core/axe.min.js"></script>
рдлрд┐рд░ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдмрд┐рдВрджреБ рдкрд░ рдХреЙрд▓ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдпрд╣ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдпрд╛ рдПрдХ рдирдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
axe.run(function (err, results) { if (err) throw err; ok(results.violations.length === 0, 'Should be no accessibility issues');
рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рд╣реИ), рдЕрдиреНрдпрдерд╛ рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдЖрдк
envify (рдЬреИрд╕рд╛ рдХрд┐
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╣рд░ рдмрд╛рд░ рдПрдХ рдШрдЯрдХ рдХреЗ рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдкрд░ Chrome Devtools рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕рднреА рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рд╕рдорд╕реНрдпрд╛рдУрдВ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдкрд╣реБрдВрдЪ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛
рдХреБрд▓реНрд╣рд╛рдбрд╝реА-рдХреЛрд░ рдПрдкреАрдЖрдИ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
- Microsoft рдПрдЬ 40 рдФрд░ рдЙрдЪреНрдЪрддрд░;
- Google Chrome 42 рдФрд░ рдЙрдЪреНрдЪрддрд░;
- рдореЛрдЬрд╝рд┐рд▓рд╛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 38 рдФрд░ рдЙрдЪреНрдЪрддрд░;
- Apple рд╕рдлрд╛рд░реА 7 рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг;
- рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 9, 10, 11ред
рд╕рдорд░реНрдерди рд╕реЗ, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдФрд░ рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде, рдХреЗрд╡рд▓ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕, рдХреНрд░реЛрдо рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 11 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
JSDOM рд╕рдорд░реНрдерди рдЕрднреА рднреА рд╕реАрдорд┐рдд рд╣реИред рдЕрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ JSDOM рдХреЗ рд╕рд╛рде рд╕рднреА рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рдВрдЧрдд рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдирд┐рдпрдореЛрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐
color-contrast
рдирд┐рдпрдо JSDOM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдХреЗрд╡рд▓ рдЙрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬрд╣рд╛рдВ рд╕рднреА рдХрд╛рд░реНрдп рдпрд╛ рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ рдпрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд▓рд╛рдпрдмреНрд░реЗрд░реА deprecated v0 рдЫрд╛рдпрд╛ DOM рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдкрд╣реБрдБрдЪ рдирд┐рдпрдо
axe-core
рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдирд┐рдпрдореЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА
рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред
рдХреБрд▓реНрд╣рд╛рдбрд╝реА рдирд┐рдпрдордирд┐рд╖реНрдХрд░реНрд╖
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рд╣реИред рдЪрд╛рд░реЛрдВ рдУрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЛрдЧ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд╕рд╛рдеред рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдЖрдк рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрддрдирд╛ рдЕрдзрд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рд╕рд╛рдЗрдЯ рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рдж рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдЕрд╡рд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!