<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: George Kemp</title>
    <description>The latest articles on DEV Community by George Kemp (@gkemp94).</description>
    <link>https://dev.to/gkemp94</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F188790%2F117c03c2-c159-46c6-823a-5644f78121df.jpeg</url>
      <title>DEV Community: George Kemp</title>
      <link>https://dev.to/gkemp94</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gkemp94"/>
    <language>en</language>
    <item>
      <title>The Web is Accessible by Default, Stop Breaking It. </title>
      <dc:creator>George Kemp</dc:creator>
      <pubDate>Mon, 13 Apr 2020 20:49:40 +0000</pubDate>
      <link>https://dev.to/gkemp94/the-web-is-accessible-by-default-stop-breaking-it-4cg4</link>
      <guid>https://dev.to/gkemp94/the-web-is-accessible-by-default-stop-breaking-it-4cg4</guid>
      <description>&lt;p&gt;I recently came across the following website, &lt;a href="https://motherfuckingwebsite.com"&gt;Mother Fucking Website&lt;/a&gt; (Warning: Contains Bad Language). The general thesis of this site, is that the web was designed, structured and standardised to be accessible, lightweight, and responsive by default. This got me thinking a little more about how I thought about the web, my responsibility as a web developer, and the best practices and processes I use in my current role as web developer.  &lt;/p&gt;

&lt;p&gt;Despite knowing full well that a plain un-styled, un-scripted HTML website was of course fast and accessible, it challenged a paradigm I held as a developer, that it was my responsibility &lt;strong&gt;to make&lt;/strong&gt; a website accessible, lightweight and responsive rather than to avoid making things inaccessible in the first place.&lt;/p&gt;

&lt;p&gt;To truly be mindful of accessibility and develop first class accessible applications, websites and digital content, we need to challenge our way of thinking. We must develop with accessibility as one of our primary focuses. We should instead shift our thinking to how best to create new functionality, components or features &lt;strong&gt;without breaking&lt;/strong&gt; the existing accessibility of the site. It's my belief that by adopting this new paradigm we can develop accessible websites with far more efficiency, and with far less accessibility issues. &lt;/p&gt;

&lt;p&gt;Not only will this provide a great deal of value to your development team, your organisation will immediately see the benefits with a more user friendly, SEO friendly and navigable website. &lt;/p&gt;

&lt;p&gt;So next time someone tells you to make things accessible, tell them that instead you don't intent to make it inaccessible in the first place. &lt;/p&gt;

</description>
      <category>a11y</category>
    </item>
    <item>
      <title>A11y Hook for Hiding Outlines</title>
      <dc:creator>George Kemp</dc:creator>
      <pubDate>Thu, 10 Oct 2019 15:27:06 +0000</pubDate>
      <link>https://dev.to/gkemp94/a11y-hook-for-hiding-outlines-4dhf</link>
      <guid>https://dev.to/gkemp94/a11y-hook-for-hiding-outlines-4dhf</guid>
      <description>&lt;p&gt;Ever wish you could hide those pesky outlines that appear around all your inputs when they're focused, but also want to make sure your app caters to all users, the following hook listens to mouse click vs tab events to determine if a user is interacting with your site using keyboard or mouse and returns a boolean that you can use to control the outline on your components! Enjoy!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;useA11yOutline&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;outline&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setOutline&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handleKeydown&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;isTabEvent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;keyCode&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;isTabEvent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;setOutline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handleClick&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;setOutline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nx"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;keydown&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handleKeydown&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handleClick&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;removeEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;keydown&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handleKeydown&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;removeEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handleClick&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;outline&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>react</category>
      <category>a11y</category>
    </item>
    <item>
      <title>How do you handle incidence response?</title>
      <dc:creator>George Kemp</dc:creator>
      <pubDate>Thu, 19 Sep 2019 21:05:11 +0000</pubDate>
      <link>https://dev.to/gkemp94/how-do-you-handle-incidence-response-4594</link>
      <guid>https://dev.to/gkemp94/how-do-you-handle-incidence-response-4594</guid>
      <description>&lt;p&gt;How does everybody document and handle incidence response, especially within smaller team? (i.e. If everybody from the sub-team is on vacation how do you document steps to debug, troubleshoot, and fix issues and where does that documentation live, do you give non developers the ability to roll back deploys if issues arise or provide ways to remotely monitor your applications)&lt;/p&gt;

&lt;p&gt;I'm trying to design and implement a procedure in which if an issue arises and the immediate developers aren't available, we target the right person to resolve the issue and provide them with all the resources required to resolve the issue or escalate it to us on vacation if the issue is critical. &lt;/p&gt;

</description>
      <category>discuss</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
