{"id":78,"date":"2026-05-09T08:20:00","date_gmt":"2026-05-09T08:20:00","guid":{"rendered":"https:\/\/demos.canvaswp.com\/resume\/2026\/05\/09\/clean-accessible-front-end-code\/"},"modified":"2026-05-09T08:20:00","modified_gmt":"2026-05-09T08:20:00","slug":"clean-accessible-front-end-code","status":"publish","type":"post","link":"https:\/\/demos.canvaswp.com\/resume\/2026\/05\/09\/clean-accessible-front-end-code\/","title":{"rendered":"Writing Clean, Accessible Front-End Code."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Most accessibility defects I am asked to fix are the same defect: a div doing a button&#8217;s job. Swap it for a real button and focus order, keyboard activation, the accessible name and the state announcement all arrive at once, with no attributes to remember.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Colour is the second one. Design in a palette that clears contrast at the smallest text size you actually ship, not at the size in the mockup. If a tone only passes at twenty-four pixels it is a heading colour, and calling it a body colour will cost you a rewrite later.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, test with the keyboard before the screen reader. Ten minutes of tabbing through a page finds nine in ten problems, and it is the one check a client can repeat themselves after handover.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Accessibility is not a phase bolted on at the end of a build. It is what you get for free when the markup describes the content honestly, and it survives every redesign that follows.<\/p>\n","protected":false},"author":54,"featured_media":91,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[37,38,39],"class_list":["post-78","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-accessibility","tag-css","tag-html"],"_links":{"self":[{"href":"https:\/\/demos.canvaswp.com\/resume\/wp-json\/wp\/v2\/posts\/78","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demos.canvaswp.com\/resume\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demos.canvaswp.com\/resume\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demos.canvaswp.com\/resume\/wp-json\/wp\/v2\/users\/54"}],"replies":[{"embeddable":true,"href":"https:\/\/demos.canvaswp.com\/resume\/wp-json\/wp\/v2\/comments?post=78"}],"version-history":[{"count":0,"href":"https:\/\/demos.canvaswp.com\/resume\/wp-json\/wp\/v2\/posts\/78\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/demos.canvaswp.com\/resume\/wp-json\/wp\/v2\/media\/91"}],"wp:attachment":[{"href":"https:\/\/demos.canvaswp.com\/resume\/wp-json\/wp\/v2\/media?parent=78"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demos.canvaswp.com\/resume\/wp-json\/wp\/v2\/categories?post=78"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demos.canvaswp.com\/resume\/wp-json\/wp\/v2\/tags?post=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}