<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HeydonWorks</title>
	<atom:link href="http://www.heydonworks.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.heydonworks.com</link>
	<description>The works, workings and reckonings of Heydon</description>
	<lastBuildDate>Tue, 28 Mar 2017 14:02:10 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.18</generator>
	<item>
		<title>HTML Is Broken</title>
		<link>http://www.heydonworks.com/article/html-is-broken</link>
		<comments>http://www.heydonworks.com/article/html-is-broken#comments</comments>
		<pubDate>Tue, 28 Mar 2017 12:32:39 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=566</guid>
		<description><![CDATA[Yes, HTML is broken (see title &#x2191;). Anyone who has used HTML on a big project knows it. Just the other day, I went to code a submit button for&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">Yes, HTML is broken (see title &#x2191;). Anyone who has used HTML on a big project knows it.</p>
<p>Just the other day, I went to code a submit button for a form. Should be pretty straightforward. Well how come this is what I wrote, then?</p>
<pre>
<code>&lt;table>
  &lt;td>
    &lt;a class="submit">
      &lt;img src="submit-image.bmp">
    &lt;/a>
  &lt;/td>
&lt;/table>
</code></pre>
<p>I&#8217;ve had complaints from users saying they &#8220;can&#8217;t use this shit&#8221; and mean developer &#8220;friends&#8221; have pointed and laughed at me, like it&#8217;s some sort of failing on my part.</p>
<p>But let&#8217;s look at the facts:</p>
<ol>
<li>I have a degree in computer science</li>
<li>I literally probably have a really high IQ. That stands to reason.</li>
<li>I live in San Francisco</li>
<li>That&#8217;s where Silicon Valley is. <strong>Ever heard of it??</strong></li>
</ol>
<p>I may have majored in computer science, but I minored in rationalist scientific enquiry. I say minored; it was more of a hobby. Anyway, given the <strong>FACTS</strong> provided above, if I see myself writing shit code I can only draw one logical conclusion: </p>
<blockquote><p>It&#8217;s not me who&#8217;s stupid, it&#8217;s you. You stupidly designed the stupid thing I&#8217;m trying to use stupidly and it&#8217;s all your fault. Stupid HTML standardista stupid bum faces.</p>
</blockquote>
<p>I rest my case.</p>
<p>But if that isn&#8217;t enough to convince you that HTML is trying to make me look bad, wait until you see <em>just how poorly</em> HTML deals with basic arithmetic! Consider the following code example:</p>
<pre>
<code>
&lt;p> + &lt;i>
</code>
</pre>
<p>Which of the following do you think the above code evaluates as? The answer may surprise you.</p>
<ol>
<li><code>&lt;p>&lt;i></code></li>
<li><code>&lt;pi></code></li>
<li><code>&#x3c0;</code></li>
<li><strong>IT JUST WRITES IT OUT THE SAME THEN COMPLAINS AT ME ABOUT MISSING CLOSING TAGS WHATEVER THEY ARE??1!!?1!</strong></li>
</ol>
<p>I can do basic arithmetic, HTML. Why can&#8217;t you? Oh, you&#8217;re a &#8220;markup language&#8221; are you? Well <em>bully for you</em>. I didn&#8217;t learn about HTML in my Ivy League university of choice, so how could I know that?</p>
<p>Fine, whatever. When there&#8217;s an international standard for formatting and transmitting digital information available, <strong>I&#8217;LL USE IT TO FUCKING WELL LOOK UP WHAT HTML IS, HOW ABOUT THAT?</strong></p>
<hr />
<p>Idea for this article from <a href="https://twitter.com/petervangrieken">@petervangrieken</a>.</p>
<p>If you&#8217;re struggling with the finer points of writing accessible markup, I have a new blog called <a href="http://inclusive-components.club/">Inclusive Components</a> which explores the inclusive design of web interfaces.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/html-is-broken/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accessibility, The Free Market, and Punching Nazis While Sitting Down</title>
		<link>http://www.heydonworks.com/article/accessibility-the-free-market-and-punching-nazis-while-sitting-down</link>
		<comments>http://www.heydonworks.com/article/accessibility-the-free-market-and-punching-nazis-while-sitting-down#comments</comments>
		<pubDate>Mon, 06 Feb 2017 09:30:41 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=554</guid>
		<description><![CDATA[Before Hitler set about exterminating Jewish people, he practiced on the disabled. The Aktion T4 programme was particularly fond of administering &#8220;involuntary euthanasia&#8221; to children. Parents were tricked into relinquishing&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">Before Hitler set about exterminating Jewish people, he practiced on the disabled. The <a href="https://en.wikipedia.org/wiki/Aktion_T4"><em>Aktion T4</em> programme</a> was particularly fond of administering &#8220;involuntary euthanasia&#8221; to children. Parents were tricked into relinquishing their little ones with the promise that they would be offered special care. This special care consisted of a lethal injection, and would be recorded as a tragic case of pneumonia.</p>
<p>Victims included those with Down syndrome, cerebral palsy, and various localized deformities. A district judge, Lothar Kreyssig, wrote to protest against the programme. The minister of justice, Franz Gürtner, replied: &#8220;If you cannot recognize the will of the Führer as a source of law, then you cannot remain a judge.&#8221;</p>
<p>Kreyssig was deposed. In towns hosting killing centers, residents reported the persistent smell of burnt human hair.</p>
<p>The Nazis believed disabled people were better off dead. I&#8217;ll leave you to decide whether they felt it was better for the &#8216;patients&#8217;, better for the Nazi vision of society from which they were being expunged, or better for both. In any case, the Nazis saw no <em>value</em> in these people.</p>
<p>So it was under German fascism. Since the 40s, fascists operating within ostensible democracies have had to find ways to obfuscate their intentions, including their disableist ones. And I don&#8217;t just mean the ability to hide behind digitally transmitted pictures of cartoon frogs.</p>
<p>Of course there are obvious displays of ignorance, like Donald Trump <a href="http://www.thedailybeast.com/articles/2016/10/13/donald-trump-called-deaf-apprentice-marlee-matlin-retarded.html">referring to deaf actress Marlee Matlin as &#8220;retarded&#8221;</a>, or Betsy DeVos <a href="https://www.washingtonpost.com/news/answer-sheet/wp/2017/01/18/six-astonishing-things-betsy-devos-said-and-refused-to-say-at-her-confirmation-hearing/?utm_term=.532c578530d3">having seemingly no understanding of The Individuals With Disabilities Education Act</a>. But it runs much deeper than this.</p>
<p>Attorney General appointee, <a href="http://www.independent.co.uk/news/world/americas/us-elections/donald-trump-attorney-general-disabled-children-comments-jeff-sessions-schools-failing-decline-in-a7447246.html">Jeff Sessions is on record</a> saying he believes protections helping to integrate disabled children have accelerated the decline of &#8220;civility and discipline&#8221; in mainstream classrooms. The notion that groups which include disabled people are less <em>civilized</em> as a result is particularly striking for its fascistic overtones.</p>
<p>That&#8217;s not to say Sessions outright proposes the eradication of the disabled from society, Nazi-style. But, then again, he wouldn&#8217;t have to. There&#8217;s a more passive way of killing off those deemed surplus, and that&#8217;s by letting them die neoliberalism-style. That&#8217;s precisely what the <a href="https://www.nytimes.com/2017/01/22/us/politics/donald-trump-health-plan-medicaid.html?_r=0">slashing of Medicaid</a>, the <a href="https://www.theatlantic.com/politics/archive/2017/01/the-trump-administrations-first-blow-to-obamacare/514103/">trashing of the ACA</a>, the segregation and disenfranchisement of the disabled in education, and the diminishing of workplace rights would mean.</p>
<p>Of course, to get away with this you need an alibi. And that alibi comes in the form of a particular brand of freedom. According to the <a href="https://en.wikipedia.org/wiki/Capitalism_and_Freedom">Milton Friedman school of free market economics</a>, true deregulation will lead to the eradication of discrimination. Why? Because there&#8217;s money to be made by and from all types of people. Pure market forces, we&#8217;re told, are &#8220;color blind&#8221;. Ergo, cutting state support for the vulnerable is actually <em>good</em> for them!</p>
<p>There&#8217;s just one problem with this ideology: It&#8217;s a trap. The rich establishment don&#8217;t need intervention and support from the state. At the point that it is removed, they are placed at an increased advantage, happily able to exploit the market and those now placed at its mercy.</p>
<p>The market has no mercy. That&#8217;s the point. But like the <a href="https://www.autostraddle.com/i-was-trained-for-the-culture-wars-in-home-school-awaiting-someone-like-mike-pence-as-a-messiah-367057/">Christofascist</a> God for which it makes a telling analogue, it cannot be questioned. To tamper with market forces means to defy its will. Accordingly, when the Americans With Disabilities Act (ADA) was first discussed at the start of the 1990s, it was <a href="http://thehill.com/blogs/pundits-blog/healthcare/309299-disability-and-the-trump-administration-whats-next">met with opposition</a>. Business leaders argued it represented a reregulation of the labor market, which ultimately would lead to greater opportunities for discrimination.</p>
<p>This was all completely disingenuous, of course. These people don&#8217;t really believe in God <em>or</em> the free market. They want to be free to discriminate as they please, for greater personal gain, and for everyone else to believe they are entitled to do so guilt free. They are interested in <em>being</em> Gods.</p>
<p>One way this is achieved is by erasing the meaning of being disabled. It is for good reason that <a href="http://www.autistichoya.com/2013/08/differently-abled.html">many object to the term &#8220;differently abled&#8221;</a>: Differently abled implies <em>equally</em> abled, and equally abled means you can weather the &#8220;mysterious ways&#8221; of the market just as well as me. You don&#8217;t need support or special treatment.</p>
<p>This works as well for mental health as for physical: As a depressive, I&#8217;m told it is my <em>choice</em> to feel that way; I&#8217;m just wallowing. There&#8217;s a gleeful orgy of futility happening down at the marketplace, and I don&#8217;t want to get on the bus. It&#8217;s my own fault I&#8217;m missing out.</p>
<p>Another way of leveraging the concept of the market to defer guilt is through the notion of niche. Friedman&#8217;s model imagines greater prosperity for all, but that&#8217;s not to say the market would become homogenous. There would still be sectors and segments; varieties of business and product.</p>
<p>By characterizing disability as a discrete &#8216;target&#8217; group, the aim is to excuse the creation of products and services which do not cater for disability. &#8220;Oh I&#8217;m not making things for disabled people. But I&#8217;m sure someone else is, don&#8217;t worry. Such-and-such law of economics states it must be so.&#8221; </p>
<p>Disability does not work that way, though. It isn&#8217;t a discrete community or field of interest. It is complex, multifaceted and pervades all kinds of cultural identity through race, socio-economic level, gender identity, and faith. If you create an inaccessible product or service, you are almost guaranteed to be disenfranchising someone, including your future self.</p>
<p>It is because disability is such a broad category of human experience that it&#8217;s so easy to neglect. Even some of those trying to combat discrimination and bigotry have trouble grappling with disability rights as civil rights. It was, after all, amid concerns that the Women&#8217;s Marches did not originally include a clear statement on accessibility that the <a href="http://mashable.com/2017/01/18/disability-march-womens-march-on-washington/#xG6IuK2.zmqc">virtual march</a> was conceived.</p>
<h2 id="afewthingstoremember">A few things to remember</h2>
<p>Firstly, try not to snort at &#8220;armchair activists&#8221;. Some don&#8217;t have the choice. They&#8217;d like to march, but they simply can&#8217;t.</p>
<p>Secondly, be wary of people who insist on removing politics from conversation or company policy. The official position is that we live in a meritocracy, benevolently guided by market forces, so positive discrimination is not necessary. You&#8217;ll find that it is only the ones who are already well represented and paid that take this stance (remember the &#8216;trap&#8217; I described previously). </p>
<p>It&#8217;s more passive and less transparent to discourage political discourse than it is to outright tell someone that <em>their</em> politics is not welcome. If someone tells you to &#8220;take the politics&#8221; out of what you&#8217;re doing, or to &#8220;stop making things political&#8221;, it&#8217;s not because anything benefits from being less political as such. It&#8217;s because they don&#8217;t want to make room for <em>your</em> politics in that space. That would mean taking some of theirs out. Well screw that; resist.</p>
<p>Thirdly, be aware that making accessible products and interfaces under a regime that regresses on disability rights <em>is</em> resistance. It goes against the prevailing ideology. Do it loudly and help others get up to speed. This is especially important when devising protests and related resources. When you&#8217;re inclusive, you reach more allies.</p>
<p>Finally, whether or not you believe it is right or sensible to punch a neo-nazi, remember that not everyone who might like to punch a neo-nazi has the physical strength, the dexterity, or even the appendage to do so. And some of these people would be first in line if they did, because they know fascists are the kind of cowards that pick on them first.  Accordingly, whether you aim to do it literally or figuratively, punch a neo-nazi for someone who can&#8217;t.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/accessibility-the-free-market-and-punching-nazis-while-sitting-down/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working For People</title>
		<link>http://www.heydonworks.com/article/working-for-people</link>
		<comments>http://www.heydonworks.com/article/working-for-people#comments</comments>
		<pubDate>Wed, 23 Nov 2016 19:10:44 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=532</guid>
		<description><![CDATA[2016 has not been an exemplary year in some ways. What with the anti-intellectualism and fascism and kleptocracy and all. And you know what? I&#8217;m not completely convinced everything&#8217;s going&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">2016 has not been an exemplary year in some ways. What with the anti-intellectualism and fascism and kleptocracy and all. And you know what? I&#8217;m not <em>completely</em> convinced everything&#8217;s going to be okay again when the clock strikes twelve on New Year&#8217;s Eve. </p>
<p>I&#8217;m not convinced the far right will develop a sudden fondness for anyone with a better tan than them, doctors and scientists will be respected and revered for actually knowing a thing or two, or Mike Pence&#8217;s head will spontaneously fall off, exploding in a cloud of rainbow-colored sherbet.</p>
<h2>What I&#8217;m doing</h2>
<p>In the new year, I want to offer my services — at reduced rates <a href="#rates">*</a> — to organizations who are doing good for society in the wake of neoliberalism and under the spectre of fascism; organizations who are trying to make things a bit better for ordinary and vulnerable people.</p>
<p>I&#8217;m only one person who can only make the tiniest difference and, hey, maybe I&#8217;m only doing this to quell my own guilt for having the privilege of being a white, male, english speaker. But anyway.</p>
<h3>What I can offer</h3>
<ul>
<li>Branding (styleguides — including typography, iconography etc. and associated documentation)</li>
<li>Pattern libraries (catalogues of attractive and accessible interface components written in HTML, JS, and CSS)</li>
<li>Prototyping</li>
<li>Accessibility remediation (diagnosis and advice on fixing accessibility and usability issues in your existing interfaces)</li>
<li>Copywriting and help with readability</li>
<li>Fast, responsive websites</li>
<li>Other stuff; just ask</li>
</ul>
<p>I&#8217;m a web designer/developer with 10+ years experience. I have two books published on interface design with Smashing Magazine. The latest, <a href="https://www.smashingmagazine.com/inclusive-design-patterns/">Inclusive Design Patterns</a>, was released just a month ago and is set to sell out before Christmas. I worked as a front-end developer for several years with <a href="https://www.neontribe.co.uk/">Neontribe</a>, helping to design and create applications for folks with disabilities and mental health concerns, as well as for educational projects. I currently work with <a href="https://www.paciellogroup.com/">The Paciello Group</a> who offer expert accessibility guidance to large organizations, mostly in the US. I have spoken (including keynotes) at large conferences in The Netherlands, Sweden, Germany, Romania, and the UK on interface design and web accessibility.</p>
<h3>Who I&#8217;m offering work to</h3>
<ul>
<li>Charities and non-profits supporting the vulnerable, disabled, and ethnic minorities</li>
<li>Campaign and legal organizations working to protect civil liberties and rights</li>
<li>Organizations fighting racism</li>
<li>Organizations representing and advocating for the LGBTQ community / communities</li>
<li>Advocate organizations for the autistic community where autistic folks actually have an influence in the organization</li>
<li>Feminist organizations and organizations supporting women&#8217;s reproductive rights</li>
<li>Organizations offering free education services, especially in politics and critical thinking</li>
</ul>
<p>One type of organization I will not work for is any organization that uses resources to promote religion. So, for example, I&#8217;d be delighted to support the Muslim community but not the spread of Islamic doctrine. Another example would be a Christian organization which includes proselytising in its activities. I am a humanist and want to work with people, including religious individuals, if the cause and focus is to help other human beings in need.</p>
<p>I work remotely and I tend to restrict long haul travel for the sake of mental wellbeing and productivity.</p>
<h2>Is this you?</h2>
<p>Are you someone working for any such described organization? Or do you know someone who is? I&#8217;m available by email: <strong>heydon@heydonworks.com</strong>.</p>
<p>* Negotiable. My standard corporate rate is not exorbitant already and I am prepared to offer between 33% and 50% reductions. Under some circumstances, free work may be applicable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/working-for-people/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Signs You May Be A Designer, Not Just A Coder</title>
		<link>http://www.heydonworks.com/article/signs-you-may-be-a-designer-not-just-a-coder</link>
		<comments>http://www.heydonworks.com/article/signs-you-may-be-a-designer-not-just-a-coder#comments</comments>
		<pubDate>Thu, 03 Nov 2016 09:49:43 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=528</guid>
		<description><![CDATA[You spend more time contemplating and discussing code than you do writing it. You spend more time thinking about how the end product affects users than you do about how&#8230;]]></description>
				<content:encoded><![CDATA[<ol>
<li>You spend more time contemplating and discussing code than you do writing it.</li>
<li>You spend more time thinking about how the end product affects users than you do about how pleasurable it is for you to write its code.</li>
<li>You think in terms of relationships and systems, not just the thing you&#8217;re coding up at the time.</li>
<li>You choose technologies based on what they can achieve, not how new, trendy, or ergonomic they are.</li>
<li>When a bug ticket is given to you, you take the time to consider what its implications are rather than just diving in to write it off your list.</li>
<li>You&#8217;re not happy to add new features just because it gives you something to do.</li>
<li>You&#8217;re not happy being told what to code or how to code it. You think you should be part of that decision making process.</li>
<li>You think of code as means to an end. It&#8217;s a tool for realizing design thinking.</li>
</ol>
<p class="intro">Is this you? Then you are not a coder. You are a designer who is skilled in coding.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/signs-you-may-be-a-designer-not-just-a-coder/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designer Is Not A Profession</title>
		<link>http://www.heydonworks.com/article/designer-is-not-a-profession</link>
		<comments>http://www.heydonworks.com/article/designer-is-not-a-profession#comments</comments>
		<pubDate>Mon, 22 Aug 2016 12:27:51 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=516</guid>
		<description><![CDATA[Design is a wonderful thing. It&#8217;s an integral part of how we work to shape the world around us. But it is not a discrete profession or occupation. We are&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">Design is a wonderful thing. It&#8217;s an integral part of how we work to shape the world around us.</p>
<p>But it is not a discrete profession or occupation. </p>
<p>We are not divided into designers and people who are not designers.</p>
<p>If someone says you don&#8217;t have the right background, you haven&#8217;t spoken to or listened to the right people, or you don&#8217;t have the appropriate skills or experience to be a designer? They are wrong.</p>
<p>If someone says particular skills — creative, discursive, technical — preclude you from being a designer and put you in a category outside of design? They are wrong.</p>
<p>Design is not in the mastery of any particular medium, skill, piece of software, style, or philosophy.</p>
<p>Websites, boats, guns, hats, buildings, events, fonts, and data schemas can all be designed or not designed. But it isn&#8217;t in hiring a designer that the crucial difference is made.</p>
<p>All design consultants can do is encourage <em>you</em> to design. And you should know enough to be doing it already.</p>
<p>Designing is deliberating; reasoning; justifying. It is joining up the dots. </p>
<p>Designing is what we&#8217;re doing when we&#8217;re <em>not</em> doing. It&#8217;s deciding what&#8217;s right to do, what the best way to do it is, for who, by who, for how long, and with what. Context, relationships, implications.</p>
<p>If you don&#8217;t do any of this, your work will be horrendous. If you hire someone else to do it for you, it will not be saved. You cannot add design.</p>
<p>If you care to think about your work as you work, then you are a designer. </p>
<p>Everything else — Javascript, Microsoft Excel, a pencil, Adobe Illustrator, a soldering iron, a coffee machine, MySQL, a pair of knitting needles — is a tool.</p>
<p>Designers cannot be identified by their tools because anything can be a designer&#8217;s tool. </p>
<p>That is, so long as it&#8217;s the right tool for the job.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/designer-is-not-a-profession/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aria-Controls is Poop</title>
		<link>http://www.heydonworks.com/article/aria-controls-is-poop</link>
		<comments>http://www.heydonworks.com/article/aria-controls-is-poop#comments</comments>
		<pubDate>Sun, 21 Aug 2016 11:43:14 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=495</guid>
		<description><![CDATA[We need to talk about aria-controls. It&#8217;s poorly supported, does very little, and does what it does when it does badly. It is poop and we rely on it way&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">We need to talk about <code>aria-controls</code>. It&#8217;s poorly supported, does very little, and does what it does <em>when</em> it does badly. It is <em>poop</em> and we rely on it way too much. We are short-changing assistive technology users when we do.</p>
<h2>What it is</h2>
<p>The <code>aria-controls</code> attribute is a &#8216;relationship attribute&#8217; which denotes which elements in a page an interactive element or set of elements has control over and affects. It&#8217;s commonly used to describe a relationship between a button and the expandable region revealed by that button.</p>
<pre>
<code style="white-space: pre-wrap">
&lt;button aria-expanded="false" aria-controls="expandable">open / close&lt;/button>
&lt;div id="expandable" hidden>content of the expandable region&lt;/div>
</code>
</pre>
<h2>What we think it does</h2>
<p>Wishfully thinking, we assume that marking up relationships with <code>aria-controls</code> means screen reader users can effortlessly flit between the moving parts of a web application, like a mechanic tinkering in a ship&#8217;s engine room.</p>
<p>Because we&#8217;ve used <code>aria-controls</code>, we don&#8217;t have to worry about source order, right? We&#8217;ve connected up the dots explicitly, with our magic attribute! And it doesn&#8217;t matter about all the elements between a controller and its subject because we&#8217;ve tunneled between them, right?</p>
<pre>
<code style="white-space: pre-wrap">
&lt;button aria-expanded="false" aria-controls="expandable"&gt;open / close&lt;/button&gt;
&lt;div>
  &lt;!-- a load of other markup, including interactive elements in focus order -->
&lt;/div>
&lt;div id="expandable" hidden>content of the expandable region&lt;/div>
</code>
</pre>
<h2>Good luck with that</h2>
<p>First of all, only the JAWS screen reader supports <code>aria-controls</code>. If a user is operating NVDA or VoiceOver (or others), they would have no idea it&#8217;s even there. That&#8217;s reason enough not to use it.</p>
<p>But, just for giggles, let&#8217;s talk about <em>how</em> JAWS supports <code>aria-controls</code>. When you focus an element with the attribute included, JAWS will announce, &#8220;<em>press the JAWS key plus Alt and M to move to the controlled element.</em>&#8221; Verbose and clumsy. Then again, I&#8217;m not sure how else you&#8217;d go about supporting it.</p>
<p>But, that&#8217;s not the only problem. <strong>How in the hell do I move back?</strong> And, even if I could, how would that be communicated and how long should the option to move back remain active? No wonder the other screen reader vendors are giving this a wide berth.</p>
<h2>Multiple controlled elements</h2>
<p>You can create a one-to-many relationship by supplying a space separated list of <code>id</code>s, representing different, simultaneously controlled elements.</p>
<pre>
<code style="white-space: pre-wrap">
&lt;button aria-controls="elem1 elem2 elem3 elem4"&gt;open / close&lt;/button&gt;
</code>
</pre>
<p>Cute! And good luck with implementing a half-decent UX there, everybody. In case you&#8217;re interested, JAWS just says &#8220;<em>press the JAWS key plus Alt and M to move to the controlled element</em>&#8221; as normal. Genius.</p>
<h2>Conclusion</h2>
<p>The <em>aria-controls</em> attribute is a prime example of something we&#8217;d love to &#8216;just work&#8217;. Trouble is, there&#8217;s no clear way <em>how</em> it should work. JAWS makes a perfunctory attempt at implementation, but it&#8217;s incomplete and I suspect it creates much more confusion than it provides clarity for real users.</p>
<p>In the absence of a good purpose-built solution for letting folks using an interface aurally move between and around tools and their outputs, try a combination of the following:</p>
<ul>
<li>Same-page links to move users from one part of the interface to another</li>
<li>Landmark roles to encapsulate major areas of the interface&#8217;s functionality</li>
<li>Expandable areas that come immediately after their <code>aria-expanded</code> controllers in the source (and in focus order)</li>
</ul>
<p>There&#8217;s also the question of &#8216;focus management&#8217;. In keyboard and screen reader accessibility terms, focus management usually means using the <code>focus()</code> method in JavaScript to move focus between elements. Be aware that, in almost all cases, users <strong>do not</strong> want to be moved from one place to another without their explicit say-so. Even when they <em>do</em> want to, providing a link is probably your best bet. </p>
<p>I think I&#8217;ll give the focus management wasps&#8217; nest a proper poke on another occasion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/aria-controls-is-poop/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing Less Damn Code</title>
		<link>http://www.heydonworks.com/article/on-writing-less-damn-code</link>
		<comments>http://www.heydonworks.com/article/on-writing-less-damn-code#comments</comments>
		<pubDate>Tue, 16 Aug 2016 09:01:52 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=471</guid>
		<description><![CDATA[I&#8217;m not the most talented coder in the world. No, it&#8217;s true. So I try to write as little code as possible. The less I write, the less there is&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">I&#8217;m not the most talented coder in the world. No, it&#8217;s true. So I try to write as little code as possible. The less I write, the less there is to break, justify, or maintain.</p>
<p>I&#8217;m also lazy, so it&#8217;s all gravy. (<em>ed: maybe run with a food analogy?</em>)</p>
<p>But it turns out the only surefire way to make <em>performant</em> Web Stuff is also to just write less. Minify? Okay. Compress? Well, yeah. Cache? Sounds technical. Flat out refuse to code something or include someone else&#8217;s code in the first place? <strong>Now you&#8217;re talking.</strong> What goes in one end has to come out the other in some form, whether it&#8217;s broken down and liquified in the gastric juices of your task runner or not. (<em>ed: I&#8217;ve changed my mind about the food analogy</em>)</p>
<p>And that&#8217;s not all. Unlike aiming for &#8216;perceived&#8217; performance gains — where you still send the same quantity of code but you chew it up first (<em>ed: seriously</em>) — you can actually make your Web Stuff <em>cheaper</em> to use. My data contract doesn&#8217;t care whether you send small chunks or one large chunk; it all adds up the same.</p>
<p>My <em>favorite</em> thing about aiming to have less stuff is this: you finish up with only the stuff you really need — only the stuff your <em>user</em> actually wants. Massive hero image of some dude drinking a latte? Lose it. Social media buttons which pull in a bunch of third-party code while simultaneously wrecking your page design? Give them the boot. That JavaScript thingy that hijacks the user&#8217;s right mouse button to reveal a custom modal? Ice moon prison.</p>
<p>It&#8217;s not just about what you pull in to destroy your UX or not, though. The <em>way</em> you write your (own) code is also a big part of having less of it. Here are a few tips and ideas that might help. I&#8217;ve written about some of them before, but in terms of accessibility and responsive design. It just happens that a flexible, accessible Web is one we try to exert little of our own control over; one we do less to break.</p>
<h2>WAI-ARIA</h2>
<p>First off, WAI-ARIA != web accessibility. It&#8217;s just a tool to enhance compatibility with certain assistive technologies, like screen readers, where it&#8217;s needed. Hence, the <a href="https://www.w3.org/TR/aria-in-html/#first-rule-of-aria-use">first rule of ARIA use</a> is to <em>not</em> use WAI-ARIA if you don&#8217;t have to.</p>
<p>LOL, no:</p>
<pre>
<code>
&lt;div role="heading" aria-level="2">Subheading&lt;/div>
</code>
</pre>
<p>Yes:</p>
<pre>
<code>
&lt;h2>Subheading&lt;/h2>
</code>
</pre>
<p>The benefit of using native elements is that you often don&#8217;t have to script your own behaviors either. Not only is the following checkbox implementation verbose HTML, but it needs a JavaScript dependency to control state changes and to <a href="https://twitter.com/heydonworks/status/765444886099288064">follyfill</a> standard, basic behavior  regarding the <code>name</code> attribute and <code>GET</code> method. It&#8217;s more code, and it&#8217;s less robust. Joy!</p>
<pre>
<code>
&lt;div role="checkbox" aria-checked="false" tabindex="0" id="checkbox1" aria-labelledby="label-for-checkbox1">&lt;/div>
&lt;div class="label" id="label-for-checkbox1">My checkbox label&lt;/div>
</code>
</pre>
<p><a href="http://wtfforms.com/">Styling? Don&#8217;t worry, you&#8217;re covered</a>. That&#8217;s if you really need custom styles, anyway.</p>
<pre>
<code>
&lt;input type="checkbox" id="checkbox1" name="checkbox1">
&lt;label for="checkbox1">My checkbox label&lt;/label>
</code>
</pre>
<h2>Grids</h2>
<p>Do you remember ever enjoying using/reading a website with more than two columns? I don&#8217;t. Too much stuff all at once, begging for my attention. &#8220;I wonder which thing that looks like navigation is the navigation I want?&#8221; It&#8217;s a rhetorical question: my executive functioning has seized up and I&#8217;ve left the site.</p>
<p>Sometimes we want to put things next to things, sure. Like search results or whatever. But why pull in a whole tonne of grid framework boilerplate just for that? Flexbox can do it with no more than a couple of declaration blocks.</p>
<pre>
<code>
.grid {
  display: flex;
  flex-flow: row wrap;
}

.grid > * {
  flex-basis: 10em;
  flex-grow: 1;
}
</code>
</pre>
<p>Now everything &#8216;flexes&#8217; to be approximately <code>10em</code> wide. The number of columns depends on how many approx&#8217; <code>10em</code> cells you can fit into the viewport. Job done. Move on.</p>
<p>Oh and, while we&#8217;re here, we need to talk about this kind of thing:</p>
<pre>
<code>
width: 57.98363527356473782736464546373337373737%;
</code>
</pre>
<p>Did you know that precise measurement is calculated according to a mystical ratio? A ratio which purports to induce a state of calm and awe? No, I wasn&#8217;t aware and I&#8217;m not interested. Just make the porn button big enough that I can find it.</p>
<h2>Margins</h2>
<p><a href="http://alistapart.com/article/axiomatic-css-and-lobotomized-owls">We&#8217;ve done this</a>. Share your margin definition across elements using the universal selector. Add overrides only where you need them. You won&#8217;t need many.</p>
<pre>
<code>
body * + * {
  margin-top: 1.5rem;
}
</code>
</pre>
<p>No, the universal selector will not kill your performance. That&#8217;s bunkum.</p>
<h2>Views</h2>
<p>You don&#8217;t need the whole of Angular or Meteor or whatever to divide a simple web page into &#8216;views&#8217;. Views are just bits of the page you see while other bits are unseen. CSS can do this:</p>
<pre>
<code>
.view {
  display: none;
}

.view:target {
  display: block;
}
</code>
</pre>
<p>&#8220;But single-page apps run stuff when they load views!&#8221; I hear you say. That&#8217;s what the <code>onhashchange</code> event is for. No library needed, and you&#8217;re using links in a standard, bookmark-able way. Which is nice. <a href="https://www.smashingmagazine.com/2015/12/reimagining-single-page-applications-progressive-enhancement/">There&#8217;s more on this technique, if you&#8217;re interested</a>.</p>
<h2>Font sizes</h2>
<p>Tweaking font sizes can really bloat out your <code>@media</code> blocks. That&#8217;s why you should let CSS take care of it for you. With a single line of code.</p>
<pre>
<code>
font-size: calc(1em + 1vw);
</code>
</pre>
<p>Err&#8230; that&#8217;s it. You even have a minimum font size in place, so no tiny fonts on handsets. Thanks to <a href="https://twitter.com/vasilis">Vasilis</a> for showing me this.</p>
<h2><a href="https://a-k-apart.com/">10k Apart</a></h2>
<p>Like I said, I&#8217;m not the best coder. I just know some tricks. But it is possible to do a hell of a lot, with only a little. That&#8217;s the premise of the <a href="https://a-k-apart.com/">10k Apart competition</a> — to find out what can be made with just 10k or less. There are big prizes to be won and, as a judge, I look forward to kicking myself looking at all the amazing entries; ideas and implementations I wish I&#8217;d come up with myself. What will you make?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/on-writing-less-damn-code/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Star Trek TNG: First Impressions</title>
		<link>http://www.heydonworks.com/article/star-trek-tng-first-impressions</link>
		<comments>http://www.heydonworks.com/article/star-trek-tng-first-impressions#comments</comments>
		<pubDate>Fri, 08 Jul 2016 10:27:42 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=463</guid>
		<description><![CDATA[Star Trek: The Next Generation was on TV in the UK when I was a little younger than Wesley Crusher, but I never watched it properly. I&#8217;ve started watching it&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro"><a href="https://en.wikipedia.org/wiki/Star_Trek:_The_Next_Generation">Star Trek: The Next Generation</a> was on TV in the UK when I was a little younger than Wesley Crusher, but I never watched it properly. I&#8217;ve started watching it on Netflix and I&#8217;m about twenty episodes into the first season. These are some notes I&#8217;ve made.</p>
<hr />
<p>The set is very sterile. Reassuringly tidy though. No dashboard dross or the like.</p>
<p>I like how the first baddies introduced (the Ferenghi) are described as &#8220;capitalists&#8221; and therefore evil. They act a bit like the crappier orcs out of LOTR.</p>
<p>It&#8217;s nice how everyone gets on so well with Worf. I expected a little bit more anti-Klingon racial tension, though. Be interesting if it came from Geordie. I like to imagine Worf&#8217;s sash is from winning a beauty pageant. </p>
<p>It occurs to me the Klingons are a bit like the English. Wedded to the past and needlessly combative.</p>
<p>Doctor Crusher: Name of a hip-hop producer, face of someone who&#8217;s very much <em>not</em> a hip-hop producer.</p>
<p>The Captain&#8217;s role is bitter sweet. He&#8217;s a sort of childless father. Comforting BBC Radio 4 voice.</p>
<p>I think Deanna Troi should have a smaller part. <em>Way</em> too much mission-critical stuff depends on her  telepathic &#8216;insights&#8217;. Doesn&#8217;t seem like a good protocol. I imagine she was called Diana Troy, then changed her name when she found out she was a telepath. Pretentious.</p>
<p>The computer interfaces look to me like they could benefit from some clearer labeling and better differentiated colors.</p>
<p>All alien races like shiny clothes. Space is camp AF.</p>
<p>Yar is my second favorite after the Captain. I like that the security officer is a woman. Lovely, wispy hair.</p>
<p>There&#8217;s something unseemly about Riker. He constantly looks like he&#8217;s trying to brave his way through a sex scandal.</p>
<p>Wesley gets an inordinate amount of romantic attention. It&#8217;s a mystery to me how.</p>
<p>Data scares the shit out of me. I know he&#8217;s an android, but I just see a psychopath. I keep expecting him to suddenly and indiscriminately strangle one of the other crew members then tilt his head and say &#8220;most curious&#8221; when they stop struggling.</p>
<p>There are a lot of alien forces which all seem to exist for the sole purpose of creating existential crises.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/star-trek-tng-first-impressions/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Responses To The Screen Reader Strategy Survey</title>
		<link>http://www.heydonworks.com/article/responses-to-the-screen-reader-strategy-survey</link>
		<comments>http://www.heydonworks.com/article/responses-to-the-screen-reader-strategy-survey#comments</comments>
		<pubDate>Thu, 30 Jun 2016 18:07:37 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=439</guid>
		<description><![CDATA[In September of last year, I decided I wanted to hear stories about how screen reader users access The Web. I suspected, as a sighted web user, I made a&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">In September of last year, I decided I wanted to hear stories about how screen reader users access The Web. I suspected, as a sighted web user, I made a lot of incorrect assumptions. Accordingly, <a href="http://www.heydonworks.com/article/screen-reader-strategy-survey">I composed seven questions to find out about  strategies for reading and operation</a>.</p>
<p>Following are the raw, unedited responses (minus the occasional typo). I don&#8217;t want to editorialize, but let&#8217;s just say I learned a <em>lot</em>.</p>
<p>(It should be noted that two respondents wanted it to be known that they believed their high level of screen reader expertise was not typical and their &#8216;strategies&#8217; unlikely to be representative.)</p>
<hr/>
<h2>Survey responses</h2>
<h3>When you arrive on a new, unfamiliar web page, for which you have no prior knowledge or expectations, what actions do you perform first?</h3>
<p>&#8220;I try to get a general layout of the page by searching for headings and landmarks. If the site is busy and inundated with breadcrumb links and other random cruft not related to the desired content, I use NVDA&#8217;s skip links command which sometimes helps. I&#8217;ve also seen separators used to break up sections of a page. In short, I use element navigation heavily and scope out a mental visualization of the website&#8217;s layout.&#8221;</p>
<p>&#8220;The first thing I am most likely to do is use H to navigate by headings or use the tab key to see what links are available or a combination of the two.&#8221;</p>
<p>&#8220;I start by using my down-arrow, if it&#8217;s a new site to me. If not, I&#8217;d start by navigating by headings. And if I were super familiar with it, and I knew an ARIA landmark would get me right where I wanted to be, I&#8217;d use that.&#8221;</p>
<p>&#8220;When I first go to a page, my screen reader starts an auto read and I usually stop that and check the headings. However, I never go to a page and have no expectations. I have always landed on a page for a reason, I know what subject it&#8217;s likely to be about etc. One doesn&#8217;t just open a browser and say take me to some random page when I haven&#8217;t searched for something or tried to open something. There is always expectation if that makes sense. As I say, headings are my go to thing for most situations, but on some pages I will know I am looking for something other than just information, so I might know I need to look for form fields etc.&#8221;</p>
<p>&#8220;For general exploration, I&#8217;ll use landmark navigation or heading navigation to look around. If I&#8217;m looking for a search facility, I&#8217;ll use the screen reader shortcut for moving to the first form field on the page. If I think the thing I&#8217;m looking for will be in the header area, I&#8217;ll use the cursor keys to explore in more detail. If I&#8217;m looking for a link I&#8217;ll call up the links dialogue, possibly taking a guess at first letter navigation to find the one I&#8217;m after.I might also search for a particular string on the page if I&#8217;m looking for something particular in the content.&#8221;</p>
<p>&#8220;I usually try to find a heading and then go from there.  Usually, I do this by pressing the #1 or #2 on the keyboard, since the hope is that a competent web developer coded the site and that headings are where and at the level they should be.  If I can’t quickly find a heading, I press H to navigate to any heading.  If none exists, I’ll start at the top of the page, press the page-down key to get past all the navigation links, and up/down arrow to find my way to the main information.&#8221;</p>
<p>&#8220;If I&#8217;m on the Mac, as I normally am, and the page is an article of some kind, I go into &#8216;reader mode&#8217; if I can. If that fails, and sometimes even if it works, headings are my go-to navigation. If the page has no headings, and if Reader didn&#8217;t work, I&#8217;m usually on a page for a specific purpose so I&#8217;ll use my screen reader&#8217;s &#8216;find&#8217; feature to look for keywords I know have to be there. If that fails, or if I&#8217;m somehow on a page for no specific reason, I&#8217;ll just skim through it line by line or element by element. By that point, especially if I don&#8217;t find something of interest relatively quickly, I&#8217;ll abandon the page and seek out my information elsewhere.&#8221;</p>
<p>&#8220;I almost always use heading navigation unless it’s a page I’m very familiar with (for instance a forum thread, where I’ll jump to the table of topics). Failing that, I’ll use the key to jump to non-link text, which often finds the part of the page I’m looking for.  Other strategies I regularly employ is finding text on the page or using the reader view in Safari or Firefox.&#8221;</p>
<p>&#8220;I first read the page title, then look for an <code>h1</code>, then a <code>main</code> region.&#8221;</p>
<p>&#8220;First I would look for regions such as nav and main and if no joy then hit the H key to look for headings and then start arrowing down to explore when it looks like I am at a place of interest. If there are no regions or Headings I normally commence swearing.&#8221;</p>
<p>&#8220;That would vary a little depending on the type of site (retail, news, information etc). Generally though, I would hit &#8220;h&#8221; to jump to the first heading and hopefully get some indication as to whether the site will give me what I want. Depending on how that goes, may continue down the page or go back to the main nav. If there are no formal headings, after muttering darkly I would try going to the top of the page and using &#8220;n&#8221; to find the first normal (not a link) text. That is the same in Window-Eyes and NVDA.&#8221;</p>
<p>&#8220;Why would users arrive on a page for which they have no prior knowledge or expectations? Unless it’s spam/a popup, they have come there with a purpose, generally from Google. Anyway, users use (1) iterating through the page element by element (whatever their screenreader allows) (2) Ctrl+F find (3) Going back because they can’t find what they want quickly. In WebbIE they can hit Ctrl+K or Control+Down to skip past non-content/to the first meaningful heading. Control+Down was probably better understood by people: down takes me through the page one line at a time, but Control+Down jumps past links and stuff.&#8221;</p>
<h3>If, while using a web page, you suddenly find yourself lost (or in a place you didn’t expect to be) what do you do to get back on track?</h3>
<p>&#8220;I search for phrases with NVDA&#8217;s find function (Firefox&#8217;s find is not as reliable at shifting NVDA&#8217;s virtual cursor to the expected point on the page). If the site has a heading I can jump to in order to start interacting with the page again, I will do that and continue my work.&#8221;</p>
<p>&#8220;I will tend to either attempt to go back a page, or I will find a link that should take me to the Home page of the website I am on.&#8221;</p>
<p>&#8220;Start arrowing up and down. Go in/out of forms/browse mode (if I&#8217;ve been put in there without my doing it myself) . The idea is to get out of it to be able to &#8220;look around&#8221; to figure out what triggered it.&#8221;</p>
<p>&#8220;I check the headings. Headings, having 6 levels, are the best way to structure information, especially as most screen readers let you navigate by any heading or by headings at a specific level.&#8221;</p>
<p>&#8220;Check the page title to determine whether I&#8217;m on the page I thought I was. If not, I&#8217;ll hit the back button since logic suggests I&#8217;ve been taken to a new page. Force a refresh of the virtual buffer (on Windows machines) to check<br />
whether content had materialized without my screen reader being aware of it and/or letting me know. Use the cursor keys to quickly explore around my current location, and if that turns up nothing useful I&#8217;ll use landmark/heading navigation to try and find some familiar point on the page.&#8221;</p>
<p>&#8220;I honestly never really thought about it.  Sometimes, if I lose my place, I use the JAWS find feature and type in a word or phrase I remember hearing to try and get myself back there…though this is something I mostly have to use in eBooks.&#8221;</p>
<p>&#8220;I usually remember what I was just reading, so will search for a couple words I remember. Failing that, I&#8217;m back to heading navigation, or link navigation if I know there was a specific link around where I&#8217;d been.&#8221;</p>
<p>&#8220;I generally repaint the screen and use a screen-reader find function for a word I recently heard to zip straight to the part of the page I want. I lose my place on a page very infrequently, it sometimes happens if I’ve started reading a page on a slow connection so the page reloads when I’m partway through it.&#8221;</p>
<p>&#8220;Usually go to the top of the page and do a screenreader search for the last content I remember.&#8221;</p>
<p>&#8220;Hit Q to navigate to the main region if there is one or use Heading navigation to find where I need to be.&#8221;</p>
<p>&#8220;More dark muttering. Then perhaps try Back or looking for the Home link.&#8221;</p>
<p>&#8220;Hit back, try the next Google result.&#8221;</p>
<h3>When it becomes clear that a web page is complex, what do you do to help break down the information?</h3>
<p>&#8220;First, I click my tongue in vexation. Then, I begin scoping the site line by line using the arrow keys.  Sometimes all it takes is slowing my TTS rate down and taking in the information slower.  I search for patterns, and take notes on whatever I&#8217;m researching. (and also on the site layout to reference later).&#8221;</p>
<p>&#8220;I will attempt to navigate by headings to find the relative information on the page that I am looking for.&#8221;</p>
<p>&#8220;Same as for the first question. There&#8217;s no help for it; it takes time, and people have to read, even if they *think* they can just use links lists and headings. I never use links lists, by the way &#8212; too much info out of context. But less experienced people do. One of the key issues that folks seem unaware of is that good screen reader training is very much lacking. Those who are *doing* the training sometimes (often?) don&#8217;t know very much, so it&#8217;s no wonder.&#8221;</p>
<p>&#8220;Again, I check through the headings to see where it is most likely to be. I find searches don&#8217;t often help and other tactics would be used so rarely and dependent upon situation and task.&#8221;</p>
<p>&#8220;Nothing in particular. Possibly a product of being familiar with how web things work, I don&#8217;t often find pages more/less complex than others. Where the accessibility (rather than the complexity) is atrocious, I&#8217;ve been<br />
known to resort to Firebug to figure out what&#8217;s going on.&#8221;</p>
<p>&#8220;I really use headings a lot.  Beyond that, I use the arrow keys almost exclusively.  My issue with regions and the like is that they aren’t universally used, so it’s just faster and simpler for me to use what I know will work a majority of the time rather than to try and guess at how accessibly-minded the web developer is.&#8221;</p>
<p>&#8220;Reader mode is, again, my friend here. If the meat of the page is all I want, Reader is perfect. If it doesn&#8217;t work, or if I need to look at the full page (such as a forum topic), I&#8217;ll see if portions are separated by headings. If not, I&#8217;ll see if I can find a pattern, such as each forum reply having the same set of information above it, or each Amazon review containing the same linked text at its start. If I can find something like that, I&#8217;ll do a text search for some words to jump from section to section, or very quickly arrow along, listening for the repeated information to tell me when I&#8217;ve gotten to a new section. If there are no repeats, and no headings,I&#8217;m back to moving through the page item by item, which I&#8217;ll usually do rather quickly. I don&#8217;t need all the words, just an idea of what&#8217;s where.&#8221;</p>
<p>&#8220;That really depends on the structure. If there’s tabular data I use table navigation, otherwise I use end-of-element or move to non-link text keys to maximize my time in the text flow of the page.&#8221;</p>
<p>&#8220;Try to get a sort of outline view using headings and regions.&#8221;</p>
<p>&#8220;&#8216;Complex&#8217; is a rather broad term. A page may be complex and structurally sound or may include lashings of poorly structured code, image links without alt attributes etc. In general though, I would use various combinations of provided navigation, headings, landmarks and intuition. Sometimes I will change browser and/or screen reader. That can be especially helpful when a site is poorly coded.&#8221;</p>
<p>&#8220;Give up, hit back, try the next Google result.&#8221;</p>
<h3>If you know there’s some information on a website but you don’t know where, what helps you to find it?</h3>
<p>&#8220;Most sites have a search function. That combined with find commands, I find things relatively quickly. If those methods don&#8217;t work, I will Google domain search with specific strings. If I&#8217;m really getting annoyed and the website has a site map, I&#8217;ll sift through it and drink coffee until I find the items I&#8217;m looking for. Overall though, finding and search box solves most issues for me.&#8221;</p>
<p>&#8220;I would use the search feature of the website or what I commonly do is Google for the information on the website.  Usually, that will bring the information up.&#8221;</p>
<p>&#8220;Using the find feature of the browser to search for words, along with arrowing, using headings, etc., as above.&#8221;</p>
<p>&#8220;This is not a reasonable question. It really depends on the page. I could say non-standard controls, like the menu buttons on Facebook, I could say working out what has changed dynamically if it is not where the focus is, I could say lack of clarity in the design of the page, it not being clear which of two buttons or links to follow as they appear to be similar. You probably need a survey monkey to cover all the possible answers and work out what bugs people rather than this freeform making us try to think lol!&#8221;</p>
<p>&#8220;I usually use Google. The &#8220;site:xyz.com keyword&#8221; function is almost always more effective than site specific search, wading through the site navigation, or other methods.&#8221;</p>
<p>&#8220;If it’s on the same actual page as I’m on, the JAWS “Find” feature is a wonderful thing.  If not, I’ll either use the navigation links at the top of the page and manually search, or I’ll even just pull up Google, type in the website name, and include the keyword.  Google seems to be better at finding the relevant info I want rather than using sites’ built-in search features.&#8221;</p>
<p>&#8220;Again, text searching or headings, or both. If I know the information, I&#8217;ll guess at keywords that are probably in the text I want and do some searches for those. Once that fails, heading navigation is next, followed by the afore mentioned skimming.&#8221;</p>
<p>&#8220;Find on page is useful, for example if reading a news story a keyword in the title often indicates the start of the article body.  For navigation on a site rather than a page I look for site maps often (because of that find on page feature) or for very large websites I prefer their search (or using a search engine with a site restrictor).&#8221;</p>
<p>&#8220;The website search, or in desperation the sitemap.&#8221;</p>
<p>&#8220;Bring up the list of links or headings or I use the search function.&#8221;</p>
<p>&#8220;Start off with nav links which, if well named, will often provide clues. If not making any progress, will then try site search. This yields remarkably varying results from one site to another. On some occasions I have more luck searching from Google than from within the site itself. One feature I use extensively is the screen reader&#8217;s search facility, which is more effective in finding something specific on a web page than using the browser&#8217;s search. I am amazed at how many screen reader users I have met who are unaware of the facility.&#8221;</p>
<p>&#8220;Try a different Google search. Ask a blind mailing list or sighted friend.&#8221;</p>
<h3>What’s the most difficult part of navigating a web page?</h3>
<p>&#8220;Unlabeled elements and sluggishness, navigation being hampered by busy flashy websites. (see below for more)</p>
<ol>
<li>If the website is heavy, that is, lagging NVDA and the browser, that&#8217;s very deterring. Developers need to understand usability and information access before painting their sites with weighty animations<br />
and banners. There is an elegant balance between efficiency and glitter.</li>
<li>Poor presentation of form controls. Example: One line of text is &#8220;Please enter your name&#8221;. Then the fields themselves have &#8220;first name&#8221; and &#8220;last name&#8221; in the boxes respectively. Never, ever ever put text inside a field that is expected to be filled out. Mistakes and scrambled text occurs a lot because of this.</li>
</ol>
<p>Another example is a table with a ton of fields. Edit edit edit checkbox checkbox combo&#8230; doesn&#8217;t help me. Unlabeled controls in general will only discourage me from using your site. And for the sake of sanity, label clickable elements!&#8221;</p>
<p>&#8220;The worst is when there are no headings.  Say I am looking at a page containing products of some sort.  More often than not, the titles of the products are not headings, and therefore, quickly being able to go through the products is time consuming.&#8221;</p>
<p>&#8220;Web pages aren&#8217;t nearly the problems they used to be. As I see it, the problems today are with Web app.s and ARIA &#8220;gone wild,&#8221; (credit the title of one of Jared Smith&#8217;s presentations) And also, there are often problems with forms, and those can be real showstoppers. I&#8217;d say poor forms and web apps are really causing trouble. Think of the kinds of project management/issue trackers you use and how inaccessible they are. Also note that I suspect most normal consumers think of something like the Twitter web site as a page when, of course, it&#8217;s not really.&#8221;</p>
<p>&#8220;Not design it well. There is no one thing I could pinpoint above other things apart from just poor design. Captchas can be show stoppers, as can unlabelled buttons, no headings or navigation etc. Again, this is a survey monkey job for me.&#8221;</p>
<p>&#8220;Too much clutter. Badly placed content (advertising iframes in the middle of a blog post for example), or just too much extraneous content that has to be navigated around/through in order to get to the proper content of the page — and the more proper semantic markup is missing, the worse this gets.&#8221;</p>
<p>&#8220;Besides content that just isn’t accessible at all no matter what, having no headings is frustrating, and poorly-labeled links also present challenges.&#8221;</p>
<p>&#8220;That can vary, based on the page. Generally, lack of structure, specifically headings, is a huge problem.&#8221;</p>
<p>&#8220;Inconsistency. Sometimes, pages are well structured in terms of headings, paragraphs, lists etc and that’s brilliant, but until all pages are you can’t rely on them for every page. It’s a similar story with landmarks, web-based applications, audio/video players and so on, they’re not used consistently enough around the web to make the access to them uniform.&#8221;</p>
<p>&#8220;Things that happen unexpectedly, such as change of focus.&#8221;</p>
<p>&#8220;Lack of semantic code and uneducated devs.&#8221;</p>
<p>&#8220;That depends very much on the site. Very often, sites that I have trouble with also challenge sighted friends and family. Airline sites, with their convoluted processes for booking and finding relevant information are prime examples. Some web developers labour under the misapprehension that visitors admire their &#8216;sophisticated&#8217; presentations when what we really want is to find information and/or complete a transaction quickly and efficiently.&#8221;</p>
<p>&#8220;Finding the content of interest, traditionally. Having the page change as you go along, or in response to changes you make that you then can’t find. Not putting LABEL elements in forms. Missing ALT. Frames.&#8221;</p>
<h3>What one thing do web designers do in the design of their web pages that makes your life most difficult?</h3>
<p>&#8220;Improper use of elements or overuse of them. Example: a site that has thirty headings that are a paragraph long, or<br />
a blog site that has tables just for articles. They may decorate the page, but couldn&#8217;t they use a boarder or margin things to get a similar feel? Also, flash. Please terminate every and any use of Flash. It&#8217;s buggy and slow, and generally unlabeled or invisible. Videos auto-playing is a nightmare to deal with as well.&#8221;</p>
<p>&#8220;Inaccessible CAPTCHAs or audio CAPTCHAs that are hard or almost impossible to understand are the biggest issue.&#8221;</p>
<p>&#8220;I think that it&#8217;s not just developers. I think it&#8217;s developers, designers, and folks at higher levels, who over-complicate for *everyone*, not just for blind folks. The purpose(s) of the site/application get lost in the branding requirements, along with other items that simply *must* be present (in the minds of corporates). Sometimes, the functionality (reason I came to the site) gets buried, and that&#8217;s not a dev&#8217;s fault.&#8221;</p>
<p>&#8220;Forget about keyboard accessibility.&#8221;</p>
<p>&#8220;Web apps are probably the most frustrating, so much so that I just don’t use them because I have no interest in working with half-accessible solutions.  My time is valuable, and unless it were for a job (where I would be paid), I have no interest in Google Docs/iCloud etc.&#8221;</p>
<p>&#8220;Again, that depends on the page/site. Lack of structure is one, unlabeled links or text fields is another, and, when looking at pages with code on them, images/screenshots of code instead of text are incredibly annoying.&#8221;</p>
<p>&#8220;Use inappropriate markup. Tables for navigation, lists of items that aren’t in list tags, miss image descriptions or use “image” or “description” in the image description, name iframes or dialogues poorly because they don’t see the name in use or provide plugins (flash, audio, video, menus etc) that aren’t accessible.  It all comes back to poorly coded structures on the pages.&#8221;</p>
<p>&#8220;Try to squash a link to everything on the homepage, usually resulting in a badly marked-up carousel.&#8221;</p>
<p>&#8220;Divs and spans with no ARIA for custom elements with no ARIA or incorrect use of ARIA.&#8221;</p>
<p>&#8220;There isn&#8217;t one thing. As mentioned above, having to hunt for information which should be readily at hand can be very tedious. If one thing does stand out, it is that most sites to which it applies do not have correctly marked up forms. This can turn what should be a straight forward process into a tedium or, in some cases, an impossibility.&#8221;</p>
<p>&#8220;Change it. Users develop strategies. When pages change they must be relearned. When tesco.com got rid of their layout tables – to improve accessibility! – everyone complained: they knew how to find things in the tables (and used table mode in JAWS to navigate them…)&#8221;</p>
<h3>Which features or aspects of web pages do you consistently find the most difficult to use and why?</h3>
<p>&#8220;Unsure on this one. Perhaps a page that auto-updates frequently whilst in an edit field? Google Instant, etc. It makes NVDA jump around sometimes.&#8221;</p>
<p>&#8220;The two features I run into often are first, editable fields that try to force me to use the drop down to select the information.  Why not just make those true drop downs is beyond me.  The Better Business Bureau is doing that quite a bit, and it needs to end.  The second thing I run into is Submit buttons that do not work with screen readers turned on when I am trying to send an e-mail through the contact us page on a website.&#8221;</p>
<p>&#8220;Most ARIA-related &#8220;features&#8221; are difficult to use because they&#8217;re not coded correctly. And it&#8217;s long been my contention that even when they are coded correctly, most blind folks have never seen how they&#8217;re supposed to work correctly, so haven&#8217;t been taught about how to use them.&#8221;</p>
<p>&#8220;Wow, the breadth of this question just makes my mind go blank. I use so many pages with so much success, but it is generally something different that stops me. Captchas, and asking me why is an insult, try using them blindfold lol, menu buttons that expand or collapse but don&#8217;t seem to reveal options, who knows what they are actually called, because we get no feedback and have to mess about with different screen reader modes to interact with them, unlabelled buttons as we have to guess what to press, all sorts.&#8221;</p>
<p>&#8220;Often the most simple. Pseudo links and buttons that cannot be focused on or used with a keyboard. Also infographics. Don&#8217;t get me started! Missing text descriptions in general (short or long).&#8221;</p>
<p>&#8220;Unlabeled or poorly labeled forms, badly designed tables, clickable items that don&#8217;t appear in link or button navigation, and frames containing ads stuck in the middle of articles all contribute to making sites more difficult to use.&#8221;</p>
<p>&#8220;Elements primarily designed with a mouse in mind. Multi-select lists, roll-over menus and submenus, expandable textboxes, drag and drop items and, of course, flash-based widgets.&#8221;</p>
<p>&#8220;Inaccessible widgets, or select boxes with <code>onchange</code> events.&#8221;</p>
<p>&#8220;Anything with Drag and Drop for obvious reasons. Places where an action causes an update elsewhere that either does not have a live region or does not shift focus and take you there.&#8221;</p>
<ul>
<li>&#8220;Poorly structured forms because I have to guess what goes in which field;</li>
<li>Image links without alt attributes because I either have to deduce the destination from the garbled text, guess or go elsewhere;</li>
<li>almost paradoxically over-use of ARIA roles because this can add to verbosity and even be misleading;</li>
<li>Scripting that introduces information that is not reported by the screen reader because it can seem like a link etc has done nothing and this is where ARIA CAN BE USEFUL.&#8221;</li>
</ul>
<p>&#8220;Change again.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/responses-to-the-screen-reader-strategy-survey/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progressive Enhancement Makes Me Sad</title>
		<link>http://www.heydonworks.com/article/progressive-enhancement-makes-me-sad</link>
		<comments>http://www.heydonworks.com/article/progressive-enhancement-makes-me-sad#comments</comments>
		<pubDate>Mon, 21 Mar 2016 13:16:28 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=398</guid>
		<description><![CDATA[There&#8217;s been a lot of talk lately in favour of progressive enhancement and &#8216;universal&#8217; (isomorphic) applications. Apparently, server rendering increases performance, robustness, and the parsability and interoperability of content. I&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">There&#8217;s been a lot of talk lately in favour of progressive enhancement and &#8216;universal&#8217; (isomorphic) applications.  Apparently, server rendering increases performance, robustness, and the parsability and interoperability of content.</p>
<p>I welcome these arguments because I&#8217;m magnanimous.</p>
<p>But there are grave concerns regarding the adoption of progressive rendering and/or isomorphism which I feel should be addressed and apparently I&#8217;m the only one brave enough to go against the grain and address them. No need to thank me.</p>
<h2>1. It&#8217;s hard :(</h2>
<p>Making applications which either render static content then enhance it with javascript or which run as applications on both the server and client in tandem is really, really difficult. Like <em>really</em>.</p>
<p>Sure, it means that more users will be able to access content more quickly and reliably—I&#8217;m not disputing that. But who&#8217;s to say there&#8217;s going to <em>be</em> any users? Or any <em>content</em>, for that matter? Half the projects I work on get shelved because of company reorgs. What use is spending all that extra time on progressive enhancement complexity, then? Wise up.</p>
<p>But that&#8217;s not even the main problem. The main problem is that my identity is built around intellectual competency. This means that, when I find something intellectually challenging, I kind of lose it pretty badly.</p>
<p>So, before you consider embarking on a universal app architecture, ask yourself: &#8220;Do I really need someone to experience maddening cognitive dissonance and go postal on me?&#8221; </p>
<p>Probably not.*</p>
<p>(*<em>This sounds kind of like a threat LOL! Soz LOL!</em>)</p>
<h2>2. There are no benefits to me</h2>
<p>It&#8217;s true that progressive enhancement makes life easier for users in certain circumstances, like ones on high latency networks or low powered devices etc. Don&#8217;t get me wrong—I&#8217;m all for writing applications for users, but aren&#8217;t we forgetting someone? Since I have to build the damned app, shouldn&#8217;t I get a say on how it&#8217;s built?</p>
<p>End users are an unknown quantity and there&#8217;s not much we can do about that. On the other hand, I already know a lot about <em>me</em> because I <em>am</em> me. It&#8217;s a no-brainer to be taking advantage of this insider knowledge.</p>
<p><img src="http://www.heydonworks.com/wp-content/uploads/2016/03/bell.png" alt="bell curve with target market (bell end) identified" width="522" height="397" /></p>
<p>So, what do I know about me? Well, I&#8217;ve got a pretty good setup for starters: Fibre, 16GB RAM. Also, I can&#8217;t stand implementing progressive enhancement—<strong>gross!</strong> (see 1)</p>
<p>Most of all, though, I like making new features. The less time I spend on creating a robust architecture (boring) the more time I have for creating features. And you know what they say: <strong>More features equals better UX</strong>. Everyone wins.</p>
<h2>3. It encourages bad behaviour</h2>
<p>If we&#8217;re going out of our way (and it really is going out of our way) to make sure content can be delivered to low power devices with tiny data contracts on shitty networks, we&#8217;re just giving our audience an excuse not to upgrade. </p>
<p>I want you to be the best that you can be!</p>
<p>Then there&#8217;s trains. Urgh. So you&#8217;re having trouble downloading a client-rendered, blocking-javascript-dependent web page over 2G because you&#8217;re on a train? The solution&#8217;s staring you in the face: <strong>Stop travelling by train.</strong> Either get a pad in the city center near your place of work or sleep under your desk. That&#8217;s what I did, why can&#8217;t you?</p>
<p>Honestly, take some responsibility.</p>
<h2>4. It&#8217;s all web apps now</h2>
<p>The Web was originally conceived to publish and share writing for the purposes of acquiring and corroborating knowledge. Thankfully, those dark and primitive days are behind us and we&#8217;ve moved onto better things, like building apps that look at photos of dogs and try to guess what age they are.</p>
<p>There&#8217;s no &#8220;document&#8221; version of an app that guesses what age your dog is. I mean, what would that even look like? A picture of someone else&#8217;s dog with the text &#8220;I don&#8217;t know how old I am, sorry&#8221; written underneath it? That&#8217;s pathetic. I&#8217;d sooner just see nothing, to be perfectly frank.</p>
<p>Sure, if you don&#8217;t want to know how old your browser thinks your dog is, be my guest and turn off javascript or go on a train ride (see 3). You don&#8217;t deserve to know how old your dog is anyway. </p>
<p>Just don&#8217;t come crying to me when someone close to you asks how old your dog is and you have to say, &#8220;I don&#8217;t know, somewhere between 5 and 8, I think&#8221; instead of, &#8220;I don&#8217;t know, but someone shared this web app on Facebook that&#8217;s quite fun. Let me show you. Hold on. Here it is. Hold on. Sorry. Hold on. Oh, never mind.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/progressive-enhancement-makes-me-sad/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Look At This Shitty Tweet Button</title>
		<link>http://www.heydonworks.com/article/look-at-this-shitty-tweet-button</link>
		<comments>http://www.heydonworks.com/article/look-at-this-shitty-tweet-button#comments</comments>
		<pubDate>Thu, 04 Feb 2016 11:15:35 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=386</guid>
		<description><![CDATA[Tweet]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;" class="intro"><a class="twitter-share-button" href="https://twitter.com/share" data-via="heydonworks" data-size="large">Tweet</a><br />
<script>// <![CDATA[
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/look-at-this-shitty-tweet-button/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developer Fallacies</title>
		<link>http://www.heydonworks.com/article/developer-fallacies</link>
		<comments>http://www.heydonworks.com/article/developer-fallacies#comments</comments>
		<pubDate>Tue, 12 Jan 2016 17:01:18 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=347</guid>
		<description><![CDATA[From time to time, web and software developers will use bad arguments to justify their choice of technologies, workflows or org structures, or to disparage others&#8217; differing choices. I see&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">From time to time, web and software developers will use bad arguments to justify their choice of technologies, workflows or org structures, or to disparage others&#8217; differing choices. I see this a lot, and I may have even dropped the occassional F-bomb myself. We&#8217;re particularly vulnerable to making bad arguments because we identify ourselves with being logical. How <em>very</em> wrong we often are.</p>
<p>In this post, I&#8217;m going to lay out a few of the fallacies I see frequently and I invite you to submit your own. Some of my examples are hypothetical for brevity, so feel free to shout &#8220;<strong>STRAW MAN</strong>&#8221; at me now, if it turns you on.</p>
<ul>
<li><a href="#gospel">The gospel fallacy</a></li>
<li><a href="#luddite">The Luddite fallacy</a></li>
<li><a href="#scale">The scale fallacy</a></li>
<li><a href="#chocolate-fireguard">The chocolate fireguard fallacy</a></li>
<li><a href="#pull-request">The pull request fallacy</a></li>
<li><a href="#made-at-facebook">The &#8216;made at Facebook&#8217; fallacy</a></li>
<li><a href="#bob-the-builder">The Bob The Builder fallacy</a></li>
<li><a href="#real-world">The real world fallacy</a></li>
<li><a href="#daphne-and-celeste">The Daphne &#038; Celeste fallacy</a></li>
</ul>
<h2 id="gospel">The gospel fallacy</h2>
<p>I&#8217;m going to start on one you&#8217;ve probably heard of already, perhaps under a different name. This is the &#8220;we&#8217;ve always done it this way&#8221; fallacy. Something &mdash; some so-called best practice or rule or process &mdash; is honoured, unquestioningly, simply because it was honoured in the past. This is a type of <strong>circular reasoning</strong>. </p>
<p>Now, this &#8220;thing&#8221; may or may not be a good idea or practice, but just saying it&#8217;s good <em>because</em> it has been agreed upon is not, well, <em>good enough</em>. This fallacy is named in honour of The Holy Bible, which is treated as unquestionable by some fundamentalist Christians despite some <strong>seriously sketchy advice</strong>.</p>
<blockquote>
<p>&#8220;Slaves, in reverent fear of God submit yourselves to your masters, not only to those who are good and considerate, but also to those who are harsh.&#8221; &mdash; <strong>1 PETER 2:18</strong></p>
</blockquote>
<p>It&#8217;s impractical to question or otherwise deconstruct everything, but be wary of accepting anything as gospel. Your software development ancestors, just like the writers of The Bible, may claim to be God-like or channeling some higher power, but this is never evident. </p>
<p>Being wary of the gospel fallacy is especially prudent regarding assumptions about users, their behaviours and preferences.</p>
<h2 id="luddite">The Luddite fallacy</h2>
<p>The Luddite fallacy is essentially the opposite of <a href="#gospel">the gospel fallacy</a>. They are two sides of the same coin, if you like. Named for the textile workers, the Luddites, who resisted the new technologies that threatened their livelihood, it takes two forms: </p>
<ul>
<li>A false claim that the only reason the subject is not adopting a new technology <em>must be</em> because they are arbitrarily resistant to (or scared of) change</li>
<li>The false claim that just because something is new, it must be better</li>
</ul>
<p>For example, you might be accused of &#8220;not liking change&#8221; because you resist moving a project from one technology to a new one, when really your reasoning is that the new technology is <em>wank</em>, for which you can provide justification. The fallacy will be trotted out to mask any valid arguments, making it a form of <em>ad hominem</em> attack.</p>
<p>Developers have a tendency to be self-serving in their choice of technology. There is a strong urge to adopt a new technology just because it&#8217;s a fun new toy to play with. Of course, they&#8217;ll never admit to that openly, but they might rely on some form of the Luddite fallacy with which to bargain. Be aware.</p>
<p>Here are some examples of <a href="http://theworstthingsforsale.com/">some things that have been recently conceived which are fucking terrible</a>.</p>
<h2 id="scale">The scale fallacy</h2>
<p>This is one I get a lot because I tend to favour simple solutions to things, in my writing about web development. The accusation takes a form akin to, &#8220;that&#8217;s fine for the simple thing you&#8217;re doing, but it won&#8217;t scale.&#8221; Exactly what is meant by &#8220;scaling&#8221; is never made clear, nor can it be &mdash; it&#8217;s too vague of a concept. In any case, the scale fallacy covers two illogical assumptions, depending on the context:</p>
<ul>
<li>That projects serving larger numbers of people are necessarily more complex intrinsically</li>
<li>That projects serving larger quantities of content can only do so by being more complex</li>
</ul>
<p>Is the popularity of an application proportional to how much code it is written with? No, of course it isn&#8217;t. In fact, there are any number of examples where quite the opposite is true. To claim that a convoluted codebase is the inevitable result of expanding the reach of a product is fallacious. Don&#8217;t be George Lucas. Sit on your fucking hands and stop adding bullshit features.</p>
<p>Equally, there&#8217;s no reason why serving 10 pages of content versus serving 10000 should be any different in terms of mechanism. They often <em>are</em> different, but there&#8217;s no reason, in isolation, why they should be. The number of records in a database has no relationship to the complexity of that database&#8217;s overall structure.</p>
<p>The clunkiness of publishing systems cannot be justified by the number of their consumers.</p>
<h2 id="chocolate-fireguard">The chocolate fireguard fallacy</h2>
<p>Some things are just not fit for purpose. Some things are just better not existing or being replaced by other things. You should never accept this without investigation (see <a href="#gospel">the gospel fallacy</a>) but not everything can be excused with the apologistic, &#8220;so long as you use it responsibly, it&#8217;s perfectly fine.&#8221; A cot made out of barbed wire? Sure, so long as you&#8217;re careful!</p>
<p>It stands to reason that the eponymous chocolate fireguard is never likely to make a worthy substitute for a wrought iron one. Sure, you can still use a chocolate fireguard if that&#8217;s how you win a bet, but you&#8217;re going to make your life difficult. It would take little effort to demonstrate this. For example, you could light a fire.</p>
<p>I may &mdash; and I did &mdash; assert that <a href="https://medium.com/@Heydon/things-to-avoid-when-writing-css-1a222c43c28f#.l7rgmobhn">nesting is a poor language feature of Sass</a>. My argument was that it arbitrarily increases syntactic complexity, inevitably diminishing the readability of the Sass source code for no benefit. You&#8217;re perfectly welcome to dispute this, providing examples of nesting <em>increasing</em> the readability of your code where possible or by demonstrating other benefits. </p>
<p>However, just saying, &#8220;like anything else, it really depends on how you use it&#8221; doesn&#8217;t answer my claim that nesting <em>cannot</em> improve Sass code. It&#8217;s just a dubious assertion that literally everything has the same value and utility.</p>
<h2 id="pull-request">The pull request fallacy</h2>
<p>The pull request fallacy is a kind of rhetorical diversion tactic. It claims that your grievances about the nature of a certain piece of Open Source Software are invalid because you could just send a pull request to fix it; that all OSS is, therefore, beyond reproach. Recently, I posted <a href="https://twitter.com/ericdfields/status/677677470590570496">this tweet quoting an observation about the arguably confused state of contemporary javascript syntax</a>. This was met with the suggestion that, because it&#8217;s open source software, I could just go and &#8220;fix it&#8221;.</p>
<p>I really wouldn&#8217;t know where I would start with this pull request, since it would have to address a huge body of decentralised standards work and proprietary API code, culminating in the provided snippet. But that&#8217;s not the point. Just because Github exists doesn&#8217;t mean I don&#8217;t have the right to pass comment on development culture or the dubious fruits it sometimes bears. </p>
<p>It is also naïve to think that fixing some code via a pull request will inevitably fix the culture that begat it. Not everything is a discrete bug that can be reduced to a ticket/issue, anyway. Some things are fundamentally flawed in their design. See the <a href="#bob-the-builder">Bob The Builder fallacy</a>.</p>
<h2 id="made-at-facebook">The &#8216;made at Facebook&#8217; fallacy</h2>
<p>This fallacy is reminiscent of the generic &#8220;<a href="https://yourlogicalfallacyis.com/appeal-to-authority">appeal to authority</a>&#8221; fallacy, wherein you point to an authority figure such as a scientist or published author stating that what they say must be true. </p>
<p>In web development we often look to famous, successful organisations for inspiration; Google, Facebook, Microsoft. We make the mistake of attributing their success to their development practices and look to <a href="https://en.wikipedia.org/wiki/Cargo_cult">cargo cult</a> success by adopting the same behaviours. There&#8217;s no reason why a successful organisation is necessarily a functional, efficient or technically capable one. Just look at the Tory party in the UK.</p>
<p>Organisations like Facebook have huge development teams where communication and knowledge sharing is necessarily more problematic than in small, closely knit teams. Should development practices evolve to overcome this problem, then they are only valid <em>where the problem actually exists</em>. Aping them isn&#8217;t going to help you.</p>
<p>Did you know OOCSS (Object Oriented CSS) was developed to help Facebook with their woefully organised and redundant CSS? Do you know who came up with it? <a href="https://vimeo.com/72759139">An independent consultant</a>.</p>
<h2 id="bob-the-builder">The Bob The Builder fallacy</h2>
<p>The Bob The Builder fallacy is symptomatic of the piecemeal way we tend to approach web development. It can be summarised in one phrase: &#8220;A problem with the design has been verified, therefore it <em>must</em> be fixed&#8221;. </p>
<p>When using ticketing systems, which describe tasks independently, it&#8217;s tempting to just soldier through, tackling anything we know <em>how</em> to tackle. It&#8217;s important to first ask whether a given task <em>should</em> be tackled, what its wider implications are for users, and what sacrifices would have to be made in terms of systemic simplicity or robustness.</p>
<p>I provided a fictional dialog illustrating the myopic way we approach problems in my article, <a href="https://medium.com/@Heydon/things-to-avoid-when-writing-css-part-2-7639f0f6880d#.tf7v0tli2">Things To Avoid When Writing CSS (part 2)</a>: </p>
<blockquote>
<p>
“Hey, I’ve got these three adjacent ‘calls to action’. They each have a picture, some text and a button (well, a link). The trouble is, the text is different for each, so the buttons don’t quite line up horizontally.”<br />“Okay.”<br />“Well, I mean it doesn’t look right. Is there a way you could fix it?”<br />“Well, technically I could set the same height for each call-to-action (leaving enough room for the tallest), then position each button absolutely along the bottom line of their container. But I wouldn’t&#8202;—&#8202;“<br />“That sounds great, do that!”<br />“Well, have you actually finalized the copy, because&#8202;—&#8202;“<br />“THAT SOUNDS GREAT, DO THAT!”<br />“But, when you reduce the viewport, the text will wrap and&#8202;—&#8202;“<br />“<strong class="markup--strong markup--blockquote-strong">THAT. SOUNDS. GREAT. DO. THAT.</strong>”
</p>
</blockquote>
<p>When it comes to communication design, nothing is black or white; broken or fixed. Not everything is a bug. Some things are limitations, and some limitations benefit many more users than the few that a &#8220;fix&#8221; would address. This fallacy is named for the children&#8217;s television show, Bob The Builder, for which the theme tune goes, &#8220;Bob The Builder / Can he fix it? / Bob The Builder / YES HE CAN!&#8221;</p>
<p>Yes, he can, but should he?</p>
<h2 id="real-world">The real world fallacy</h2>
<p>The real world fallacy comes about when you express an idea for a new development practice and a member of the community disputes its veracity on the basis (for whatever reason) that their company/organisation would not want or be able to adopt it. The truly fallacious part derives from applying their specific assumption generally, making the mistake that because it wouldn&#8217;t work for them, it necessarily wouldn&#8217;t work anywhere else, for anyone else.</p>
<p>That is, by assuming their experience is universal, they cannot imagine anyone &#8220;in the real world&#8221; would ever take the notion seriously. </p>
<p>As an addendum, it&#8217;s probably worth pointing out that &#8220;the real world&#8221; &mdash; the one we live in &mdash; is <em>our</em> responsibility. The real world is what we make it. Since your agency is undeniable, using &#8220;this would only work in an ideal world&#8221; as an excuse tells everyone you&#8217;re reluctant to help change the world for the better. </p>
<p>Ask yourself: Am I The Establishment?</p>
<h2 id="daphne-and-celeste">The Daphne &#038; Celeste Fallacy</h2>
<p>The Daphne and Celeste fallacy erroneously puts that ugly looking code must be poor code. It is typically the domain of coddled and self-regarding developers who prioritise the readability of code by themselves over its utility to users.</p>
<p>One example is the addition of WAI-ARIA attribution. Yes, it makes the code &#8220;uglier&#8221;, but it is there for an important reason (providing semantics to AT users). To suggest that its ugliness is, by extension, &#8220;hacky&#8221; or low in quality would therefore be incorrect.</p>
<p>Here&#8217;s an example of some CSS:</p>
<pre>
<code>
:nth-last-child(-n+6):first-child,
:nth-last-child(-n+6):first-child ~ * {
	/* properties here */
}
</code>
</pre>
<p>This CSS does something useful: It styles sibling elements if there are six or more of them in quantity. It is quite difficult to read if you are not familiar with advanced CSS and it should probably follow a comment that explains what it does. It also covers a relatively obscure use case. None of this means that the code is badly written or lacking in utility.</p>
<p>This developer fallacy is named after the erstwhile pop duo, Daphne &#038; Celeste, who sang &#8220;U G L Y / you ain&#8217;t got no alibi&#8221;, which is equivalent to &#8220;U G L Y / you have got an alibi&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/developer-fallacies/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flexbox Grid Finesse</title>
		<link>http://www.heydonworks.com/article/flexbox-grid-finesse</link>
		<comments>http://www.heydonworks.com/article/flexbox-grid-finesse#comments</comments>
		<pubDate>Sat, 05 Dec 2015 11:14:23 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=332</guid>
		<description><![CDATA[(This post was originally published on Medium, put has a permanent home here.) Flexbox&#8212;not to be confused with Sex Box, the British TV show wherein Mariella Frostrup interviews people who&#x2019;ve&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro"><em>(This post was originally published on Medium, put has a permanent home here.)</em></p>
<p>Flexbox&mdash;not to be confused with <a href="https://en.wikipedia.org/wiki/Sex_Box">Sex Box</a>, the British TV show wherein Mariella Frostrup interviews people who&#x2019;ve just had sex in a box&mdash;is the CSS layout toolkit <em>de rigueur</em>. Of all the celebrated features of Flexbox, it is the light work it makes of producing wrappable grids, tolerant of dynamic content, that I think&#x2019;s integral. </p>
<p>In this article, I&#x2019;ll cover a few techniques to exploit Flexbox&#x2019;s internal algorithms and design finessed grids intended for changing quantities and dimensions of content.</p>
<h2 id="basic-wrapping">Basic wrapping</h2>
<pre class="prettyprint"><code class=" hljs css"><span class="hljs-class">.parent</span> <span class="hljs-rules">{
    <span class="hljs-rule"><span class="hljs-attribute">display</span>:<span class="hljs-value"> flex</span></span>;
    <span class="hljs-rule"><span class="hljs-attribute">flex-flow</span>:<span class="hljs-value"> row wrap</span></span>;
<span class="hljs-rule">}</span></span>

<span class="hljs-class">.child</span> <span class="hljs-rules">{
    <span class="hljs-rule"><span class="hljs-attribute">flex</span>:<span class="hljs-value"> <span class="hljs-number">1</span> <span class="hljs-number">0</span> <span class="hljs-number">25</span>%</span></span>;
<span class="hljs-rule">}</span></span></code></pre>
<p>I&#x2019;ve made the <code>.parent</code> a flex container and used the <code>flex-flow</code> shorthand to set the <code>flex-direction</code> to <code>row</code> (i.e. following the horizontal axis) and enabled wrapping. Wrapping operates according to the <code>flex-basis</code> set on children; in this case <code>25%</code>. </p>
<p>100 divided by 25 is 4, meaning what we have here is a 4 column grid. Simple stuff, I know. With wrapping on, a new row is begun every time you exceed 4 additional children. The last row is always complete, either because the total is exactly divisible by 4, or because the left over children are &#x201c;grown&#x201d; to share a row&#x2019;s width. The &#x201c;1&#x201d; in <code>flex: 1 0 25%</code> essentially means the ability for children to grow is set to <em>on</em>.</p>
<div><img src="http://www.heydonworks.com/wp-content/uploads/2015/12/1.png" alt="A four column grid, without gaps as new  items are included." width="799" height="111" class="alignnone size-full wp-image-333" /></div>
<p>The upshot is that you can employ a grid which &#x201c;tidies&#x201d; itself, distributing children automatically. This is powerful stuff. I can be assured that no matter the number of children currently included, my layout will be acceptable.</p>
<h2 id="element-queries">Element queries</h2>
<p>I&#x2019;m not the first (I think <a href="https://twitter.com/zomigi">Zoe Gillenwater</a> pointed it out) to notice that Flexbox can be made to employ something akin to &#x201c;element queries&#x201d;; changes in an element&#x2019;s layout based on that element&#x2019;s own dimensions. By incorporating a <code>min-width</code> into the last example, I can trigger elements to grow at this &#x201c;breakpoint&#x201d;. </p>
<pre class="prettyprint"><code class=" hljs css"><span class="hljs-class">.parent</span> <span class="hljs-rules">{
    <span class="hljs-rule"><span class="hljs-attribute">display</span>:<span class="hljs-value"> flex</span></span>;
    <span class="hljs-rule"><span class="hljs-attribute">flex-flow</span>:<span class="hljs-value"> row wrap</span></span>;
<span class="hljs-rule">}</span></span>

<span class="hljs-class">.child</span> <span class="hljs-rules">{
    <span class="hljs-rule"><span class="hljs-attribute">flex</span>:<span class="hljs-value"> <span class="hljs-number">1</span> <span class="hljs-number">0</span> <span class="hljs-number">25</span>%</span></span>;
    <span class="hljs-rule"><span class="hljs-attribute">min-width</span>:<span class="hljs-value"> <span class="hljs-number">5</span>em</span></span>;
<span class="hljs-rule">}</span></span></code></pre>
<p>I have made my grid entirely responsive with just one additional declaration. The number of columns is predicated on the simple axiom that no one column (element) can be fewer than <code>5em</code> in width. Flexbox&#x2019;s <code>grow</code> takes care of expanding children that hit this minimum width, making sure they never get any narrower than this setting. Wrapping takes care of everything else.</p>
<div><img src="http://www.heydonworks.com/wp-content/uploads/2015/12/2.png" alt="As the viewport narrows, the grid layout reduces in columns until there is just one column at a 500px viewport width" width="701" height="210" class="alignnone size-full wp-image-334" /></div>
<h2 id="dealing-with-remainders-of-1">Dealing with remainders of 1</h2>
<p>If I have a 4 column grid with 8 children present then I add a child element, that element will constitute the whole of the bottom row. Ideally, I&#x2019;d like to move things around so that this is not the case. By harnessing the ability of my elements to grow and incorporating nome <code>nth-child</code> magic, I can essentially borrow elements from the penultimate row to distribute the elements towards the end of the grid more reasonably. I can also do this without negatively affecting other quantities of elements producing more than a single remainder or no remainder at all.</p>
<p>In the following example, I&#x2019;ve adapted the first example in this article.</p>
<pre class="prettyprint"><code class=" hljs css"><span class="hljs-class">.parent</span> <span class="hljs-rules">{
    <span class="hljs-rule"><span class="hljs-attribute">display</span>:<span class="hljs-value"> flex</span></span>;
    <span class="hljs-rule"><span class="hljs-attribute">flex-flow</span>:<span class="hljs-value"> row wrap</span></span>;
<span class="hljs-rule">}</span></span>

<span class="hljs-class">.child</span> <span class="hljs-rules">{
    <span class="hljs-rule"><span class="hljs-attribute">flex</span>:<span class="hljs-value"> <span class="hljs-number">1</span> <span class="hljs-number">0</span> <span class="hljs-number">25</span>%</span></span>;
<span class="hljs-rule">}</span></span>

<span class="hljs-class">.child</span><span class="hljs-pseudo">:nth-last-child(2)</span><span class="hljs-pseudo">:nth-child(4n)</span> <span class="hljs-rules">{
  <span class="hljs-rule"><span class="hljs-attribute">min-width</span>:<span class="hljs-value"> <span class="hljs-number">33</span>%</span></span>;
<span class="hljs-rule">}</span></span></code></pre>
<p>This selector expression in the last block targets any element that falls in the fourth and final column (<code>4n</code>) which is simultaneously the penultimate element &#x201d;“ that is, the element before the long, single remainder. By bumping this element&#x2019;s width to <code>33%</code>, it&#x2019;s forced down into the final line, leaving the penultimate line with just three elements. </p>
<p>The result is the elimination of the single element and a dynamic grid that resolves into a line of 4, then 3, then 2 children when there is a single remainder. No matter how many child elements are present, the grid never ends with a single element row.</p>
<div><img src="http://www.heydonworks.com/wp-content/uploads/2015/12/3.png" alt="Before and after: the second example ends with not one element but two on the row, preceded by three children on the penultimate row." width="676" height="171" class="alignnone size-full wp-image-335" /></div>
<p>Try adding and removing items in <a href="http://codepen.io/heydon/pen/zvNxZN">this codePen demo</a> and experimenting with different numbers of columns. The basic formula for the selector is <code>.child:nth-last-child(2):nth-child([number of columns]n)</code>. The width you set has to be somewhere between the base width and the base width for the grid if it had one less column. So, if there are five columns, the width set in this override should be between 20% and 25%.</p>
<h2 id="controlled-chaos">Controlled chaos</h2>
<p>In the last example, I singled out a child element based on its index using the algebraic <code>:nth-child</code> and <code>nth-last-child</code>. Because of my Flexbox configuration&#x2019;s insistence of filling the available space according to its element growth and wrapping features, I could do this safe in the knowledge that I would not produce an incomplete, gap-ridden grid.</p>
<p>Based on this principle, I can arbitrarily change the widths of any grid children I like. I can get quite expressive with this and build in some algorithmic asymmetry.</p>
<pre class="prettyprint"><code class=" hljs css"><span class="hljs-class">.child</span><span class="hljs-pseudo">:nth-child(3n)</span> <span class="hljs-rules">{
  <span class="hljs-rule"><span class="hljs-attribute">width</span>:<span class="hljs-value"> <span class="hljs-number">33.333</span>%</span></span>;
<span class="hljs-rule">}</span></span>

<span class="hljs-class">.child</span><span class="hljs-pseudo">:nth-child(5n)</span> <span class="hljs-rules">{
  <span class="hljs-rule"><span class="hljs-attribute">width</span>:<span class="hljs-value"> <span class="hljs-number">50</span>%</span></span>;
<span class="hljs-rule">}</span></span>

<span class="hljs-class">.child</span><span class="hljs-pseudo">:nth-child(7n)</span> <span class="hljs-rules">{
  <span class="hljs-rule"><span class="hljs-attribute">width</span>:<span class="hljs-value"> <span class="hljs-number">66.666</span>%</span></span>;
<span class="hljs-rule">}</span></span></code></pre>
<p>By using prime numbers (3, 5 and 7) to augment the child elements&#x2019; width at intervals, any perceived regularity in the layout can be easily diminished. However, the layout never <em>breaks</em> as such thanks to our go-to wrapping and growth settings. Be sure to try out the <a href="http://codepen.io/heydon/pen/GpbQdP">codePen demo</a> for this one and experiment with different, superimposed <code>nth-child</code> intervals.</p>
<h2 id="gutter-tactics">Gutter tactics</h2>
<p><em>(This is an edit to the original article after <a href="https://medium.com/@StuCoxMedia/how-would-you-suggest-adding-a-gutter-with-this-pattern-6e176fb6b4e9#.2ts42s545">Stu Cox</a> started a discussion about how one might deal with gutters.)</em></p>
<p>Gutters are, put simply, the gaps between grid children to space them. I&#x2019;m not absolutely certain what the &#x201c;flexy&#x201d; way to add gutters to any of my described grids would be, but I am aware of one technique which would create gutters that do not break when wrapping produces remainders.</p>
<pre class="prettyprint"><code class=" hljs css"><span class="hljs-class">.parent</span> <span class="hljs-rules">{
  <span class="hljs-rule"><span class="hljs-attribute">display</span>:<span class="hljs-value"> flex</span></span>;
  <span class="hljs-rule"><span class="hljs-attribute">flex-flow</span>:<span class="hljs-value"> row wrap</span></span>;
  <span class="hljs-rule"><span class="hljs-attribute">margin-left</span>:<span class="hljs-value"> -<span class="hljs-number">0.5</span>rem</span></span>;
  <span class="hljs-rule"><span class="hljs-attribute">margin-right</span>:<span class="hljs-value"> -<span class="hljs-number">0.5</span>rem</span></span>;
<span class="hljs-rule">}</span></span>

<span class="hljs-class">.child</span> <span class="hljs-rules">{
  <span class="hljs-rule"><span class="hljs-attribute">flex</span>:<span class="hljs-value"> <span class="hljs-number">1</span> <span class="hljs-number">0</span> <span class="hljs-number">25</span>%</span></span>;
  <span class="hljs-rule"><span class="hljs-attribute">box-sizing</span>:<span class="hljs-value"> border-box</span></span>;
  <span class="hljs-rule"><span class="hljs-attribute">padding</span>:<span class="hljs-value"> <span class="hljs-number">0</span> <span class="hljs-number">0.5</span>rem <span class="hljs-number">1</span>rem</span></span>;
<span class="hljs-rule">}</span></span></code></pre>
<p>It is important that I treat each item equally, rather than trying to anticipate things with nth children, because any of my items can potentially grow or wrap. Hence the <code>padding: 0.5rem 1rem</code> on all <code>.child</code> elements. This produces a <code>1rem</code> gutter around each child, no matter how they wrap or grow.</p>
<p>All that&#x2019;s left is to compensate for the redundant 0.5rem space for left-most and right-most children, facilitated by the left and right negative margins on the parent (Stu arrived at this notion). Depending on the vertical rhythm of your page, you may want to remove the redundant bottom margin of the last child row too, with margin-bottom: -1rem on the parent too. There is <a href="http://codepen.io/heydon/pen/EVqwOW">a codePen to play with</a>.</p>
<h2 id="conclusion">Conclusion</h2>
<p>I hope that this short article has given you something to think about regarding the way Flexbox handles and tolerates dynamic content, allowing you to tersely code robust yet expressive layouts. With Flexbox, for the first time, we&#x2019;re afforded something akin to true grid <em>systems</em>; grids which govern themselves, freeing us to focus on content creation and aesthetics.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/flexbox-grid-finesse/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screen Reader Strategy Survey</title>
		<link>http://www.heydonworks.com/article/screen-reader-strategy-survey</link>
		<comments>http://www.heydonworks.com/article/screen-reader-strategy-survey#comments</comments>
		<pubDate>Fri, 18 Sep 2015 14:38:59 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=322</guid>
		<description><![CDATA[They say accessibility is about people. Inaccessibility is about people too, of course. In either case, it&#8217;s people &#8212; flesh-and-blood, living, breathing people &#8212; that interfaces are built to cater&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">They say accessibility is about people. Inaccessibility is about people too, of course. In either case, it&#8217;s people &mdash; flesh-and-blood, living, breathing people &mdash; that interfaces are built to cater for, successfully or otherwise.</p>
<p>What we learn in user research is that people are unpredictable, resistant, hesitant, contrary, determined, inventive and most of all disparate. Yet we spend large amounts of our time as assistive technology testers worrying about the technicalities of which screen reader supports what with which browser on which operating system. We focus on discrete instances of what&#8217;s broken or unbroken, without considering the people using these technologies regularly and what strategies they employ to solve problems and complete tasks. In short, we don&#8217;t tend to treat screen reader users like users.</p>
<p>Despite having some knowledge of the conventions and controls of NVDA, JAWS et al, my sporadic test usage of screen readers is mere fumbling &mdash; fumbling around pages <em>I&#8217;ve</em> built looking for information <em>I</em> already know is there, usually while <em>I&#8217;m</em> looking at said pages. This really doesn&#8217;t tell me a great deal. So, I want to ask any screen reader users reading this to help me and others to fill in some gaps.</p>
<p>To follow is a short list of questions that you can fill in at your convenience, leaving out any that aren&#8217;t applicable or you&#8217;re not happy answering. I&#8217;m not expecting any kind of feedback that can be converted to numbers and metrics, so there&#8217;ll be no dreaded visualisations; I just want to hear how you go about things. You can send your answers to <a href="mailto:heydon@heydonworks.com">heydon@heydonworks.com</a> and I aim to publish them, respecting your anonymity unless you wish to be cited.</p>
<p>Thank you.</p>
<p><strong>Edit:</strong> <a href="http://www.heydonworks.com/article/responses-to-the-screen-reader-strategy-survey">Here are the responses!</a>.</p>
<ul>
<li>When you arrive on a new, unfamiliar web page, for which you have no prior knowledge or expectations, what actions do you perform first?</li>
<li>If, while using a web page, you suddenly find yourself lost (or in a place you didn&#8217;t expect to be) what do you do to get back on track?</li>
<li>When it becomes clear that a web page is complex, what do you do to help break down the information?</li>
<li>If you know there&#8217;s some information on a website but you don&#8217;t know where, what helps you to find it?</li>
<li>What&#8217;s the most difficult part of navigating a web page?</li>
<li>What one thing do web designers do in the design of their web pages that makes your life most difficult?</li>
<li>Which features or aspects of web pages do you consistently find the most difficult to use and why?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/screen-reader-strategy-survey/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heydon Is Dead</title>
		<link>http://www.heydonworks.com/article/heydon-is-dead</link>
		<comments>http://www.heydonworks.com/article/heydon-is-dead#comments</comments>
		<pubDate>Wed, 15 Jul 2015 11:41:20 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=286</guid>
		<description><![CDATA[This post is the first in a two part series examining the senescence and ultimate mortality of this blog&#8217;s proprietor, Heydon Pickering. This week, guest author Malcolm Leader-Thought will make&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro"><em>This post is the first in a two part series examining the senescence and ultimate mortality of this blog&#8217;s proprietor, Heydon Pickering. This week, guest author <strong>Malcolm Leader-Thought</strong> will make the case that, yes, Heydon Pickering is, in fact, dead; kaput; pushing up the daisies. In the second installment, <strong>Tim Upman-Ship</strong> will argue that, &#8220;no, Heydon is not dead, in fact I saw him walking down Bedford Street on Saturday morning. He looked well, actually. I think he&#8217;s working out.&#8221;</em></p>
<hr/>
<p>Have you ever considered the notion that Heydon Pickering might be dead? Probably not &mdash; there&#8217;s no reason why it should occur to you. But now I&#8217;ve brought it up, don&#8217;t you feel compelled to examine the idea further, if only just to revel in its absurdity? <strong>Yes you do</strong>. I&#8217;ll be the first to admit it&#8217;s a controversial argument to make. In fact, it has very little utility other than in creating controversy, driving traffic to its locus of pointless speculation. </p>
<p>If you open up your mind and really think about it, this puts a question mark over my use of the word &#8220;admit&#8221;: It makes it sound like this patently manufactured controversy was an accidental happenstance, which is disingenuous. But it&#8217;s important to ask questions, and it&#8217;s a good thing that people like me are brave enough to do so. Try to ignore the fact that I started by making statements and now I&#8217;m talking about questions for some reason.</p>
<figure>
<img src="http://www.heydonworks.com/wp-content/uploads/2015/07/question-mark.gif" alt="A big question mark" width="500" height="700" class="alignnone size-full wp-image-294" style="max-width: 250px" /><br />
<figcaption>A question mark, yesterday.</figcaption><br />
</figure>
<p>Let&#8217;s have a list. Do me a favor and pretend that each item in the list is, somehow, supporting evidence that Heydon Pickering is dead, rather than merely a discrete morsel of conjectural drivel.</p>
<ul>
<li>Heydon hasn&#8217;t changed his Twitter avatar in over three days</li>
<li>I&#8217;ve never met Heydon</li>
<li>Heydon hasn&#8217;t replied to that long, rambling email I sent the other day &mdash; the one filled with vague and nonsensical questions</li>
<li>Heydon staggered into the office of my tech startup on Tuesday morning with a pallid complexion and empty eyes, then proceeded to bite 372 grammes of flesh out of my left arse cheek. (This isn&#8217;t technically true but you can&#8217;t argue that it <em>couldn&#8217;t</em> happen, because everything is possible no matter how unlikely. Also, that &#8220;372&#8243; figure is oddly specific, which must mean something.)</li>
</ul>
<h2>Stuff moves fast</h2>
<p>It was never really about evidence. Well, it was twenty minutes ago when I was making the list you just read, but I&#8217;ve lost confidence in that and I&#8217;ve decided to change tack. Now it&#8217;s all about getting you on side with sweeping statements and making you feel there&#8217;s a vague threat of disenfranchisement on the horizon.</p>
<p>I mean, what if Heydon Pickering is dead and you&#8217;re the last person to publicly acknowledge it? Do you really want to be the only person sending Heydon tweets and birthday cards in five or even two year&#8217;s time? Can you afford the professional and personal embarrassment of being seen to fixate on the deceased? <strong>Of course not</strong>, and I think we can agree that the question of whether Heydon Pickering has demonstrably <em>popped his clogs</em> isn&#8217;t even a factor here.</p>
<p>Don&#8217;t worry, I can help. Your career is safe in my hands. All you have to do is compose a simple tweet. Just write the word &#8220;this&#8221; and link to this article. That&#8217;s it. Look, I&#8217;ve even mocked it up for you:</p>
<p><img src="http://www.heydonworks.com/wp-content/uploads/2015/07/Selection_530-1024x217.png" alt="Tech Crunch linking to this article with the word this" width="640" height="135" class="alignnone size-large wp-image-312" /></p>
<p>If you&#8217;re lucky and you&#8217;re one of the first to do so, you might even be credited as an early adopter: one of the first people to consider Heydon Pickering no longer a living, breathing mammalian organism. Then when he <em>really</em> dies, you can say you were ahead of the curve.</p>
<figure>
<img src="http://www.heydonworks.com/wp-content/uploads/2015/07/baton-e1436958235786.jpg" alt="baton" width="600" height="194" class="alignnone size-full wp-image-308" /><br />
<figcaption>Is it time to pass on the baton of life? To, like, a child or something?</figcaption><br />
</figure>
<h2>Now an interview</h2>
<p>In this final section, I&#8217;m going to call upon the experience of a person you&#8217;ve never heard of who you suspect is either my colleague or lover.</p>
<p><strong>So, Kenneth, is Heydon dead?</strong></p>
<p>&#8220;That&#8217;s an important question &mdash; a question we all need to ask. And I think the answer is &#8216;it depends&#8217;. It depends on whether Heydon is up and about, breathing and talking and generally doing things as a living person might or if he&#8217;s laying down very still, secreting the scent of necrosis.&#8221;</p>
<p><strong>Okay, but do you think he will die, if he hasn&#8217;t already?</strong></p>
<p>&#8220;I think the writing&#8217;s on the wall. Heydon Pickering&#8217;s mortality means he just isn&#8217;t going to live forever. It might be time to bite the bullet and start working and conversing with younger and fitter people. People who were born after Heydon.&#8221;</p>
<p><strong>What do you think the future holds?</strong></p>
<p>&#8220;I think we need to radically rethink the landscape. In fact, I think we need to start thinking in terms of seascapes instead. We&#8217;ve started to invest in lobsters, since they do not show signs of senescence at all; they just keep on growing and getting stronger throughout their lives. They&#8217;re also much more willing to reproduce than Heydon.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/heydon-is-dead/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An album for a11y</title>
		<link>http://www.heydonworks.com/article/an-album-for-a11y</link>
		<comments>http://www.heydonworks.com/article/an-album-for-a11y#comments</comments>
		<pubDate>Sun, 28 Jun 2015 08:48:19 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=271</guid>
		<description><![CDATA[TL;DR I&#8217;m putting together an album to raise money for an organization that supports web accessibility. I had this brainwave while nursing a hangover in Brighton after Responsive Day Out:&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">TL;DR I&#8217;m putting together an album to raise money for an organization that supports web accessibility.</p>
<hr/>
<p>I had this brainwave while nursing a hangover in Brighton after Responsive Day Out: There are a load of folks working in the overlapping fields of web standards and accessibility who are musicians. Some really quite accomplished. So, why not ask around and have some tracks donated to a &#8220;charity&#8221; album which generates funds to support web accessibility. Simple(s).</p>
<h2>Tracks flying in</h2>
<p>The response has been promising, so it&#8217;s likely to go ahead. The tracks submitted so far (in no particular order yet) are:</p>
<ul>
<li>Luck &mdash; <a href="http://twitter.com/gorkamolero">@gorkamolero</a></li>
<li>Imprecise and Infrared &mdash; <a href="http://twitter.com/brucel">@brucel</a></li>
<li>The WCAG 2.0 Theme Song &mdash; <a href="http://twitter.com/davidmacd">@davidmacd</a></li>
<li>The Git Rap &mdash; <a href="http://twitter.com/marak">@marak</a></li>
<li>Eatin&#8217; Dust (Fu Manchu cover) &mdash; me</li>
<li>Tour De Force &mdash; <a href="http://twitter.com/brothercake">@brothercake</a></li>
<li>Swallows &mdash; <a href="http://twitter.com/thatemil">@thatemil</a></li>
<li>Man With Small F (The Inaccessible PDF song) &mdash; <a href="http://twitter.com/terrillthompson">@terrillthompson</a></li>
<li>Girl In The Room &mdash; <a href="http://twitter.com/brucel">@brucel</a></li>
</ul>
<p><strong>Are you a musician? Do you work in/on/under the Web? Do you have a piece of music laying around? Please contact me using heydon@heydonworks.com or via Twitter.</strong></p>
<p>You&#8217;ll notice there&#8217;s two submissions by Bruce Lawson. This means I can legitimately use the expression &#8220;Brucey bonus&#8221;, so that&#8217;s nice. I think it&#8217;s a good balance between web development-themed novelty tracks and just good tunes. In addition, I&#8217;m trying to pen a track about <code>&lt;div&gt;</code>s called &#8220;Divs&#8221;.</p>
<h2>Artwork</h2>
<p>Artwork-wise, I have done a bit of creative lettering. I&#8217;ve taken the <a href="https://twitter.com/search?q=%23a11y&#038;src=typd">#a11y</a> hashtag and supplanted the 11 for two fingers forming the Ronnie James Dio-originated &#8220;devil horns&#8221; hand gesture. Here&#8217;s how it&#8217;s looking:</p>
<figure>
<img src="http://www.heydonworks.com/wp-content/uploads/2015/06/logo_demo.png" alt="a11y drawn using the devil horns hand gesture for the 11." width="600" height="333" /><br />
<figcaption>Accessibility rocks (geddit!?)</figcaption><br />
</figure>
<h2>The beneficiary</h2>
<p>There has been some discussion about the beneficiary of the proceeds. Ideally, I want it to support an international web accessibility org&#8217;, but I&#8217;ve had trouble finding one of them. So the shortlist is <a href="http://www.nvaccess.org/">NVaccess (creators of the NVDA screen reader)</a>, <a href="http://www.w3.org/WAI/">The Web Accessibility Initiative (WAI)</a> and <a href="https://www.bcab.org.uk/">The British Computer Association Of The Blind</a>. Let me know which you prefer in the comments and I&#8217;ll take it on board.</p>
<h2>E-commerce</h2>
<p>I&#8217;m currently considering <a href="https://selz.com/">selz.com</a> for actually selling the record. I was impressed with the inclusion of focus styles and a &#8220;skip to content&#8221; link on their homepage. <a href="https://gumroad.com/">Gumroad</a> was lacking in these areas. Other suggestions welcome.</p>
<p><span aria-label="devil horns emoticon">\m/</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/an-album-for-a11y/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Precarious X In UX</title>
		<link>http://www.heydonworks.com/article/the-precarious-x-in-ux</link>
		<comments>http://www.heydonworks.com/article/the-precarious-x-in-ux#comments</comments>
		<pubDate>Thu, 11 Jun 2015 18:10:31 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=239</guid>
		<description><![CDATA[I have a long-held suspicion of anything directed at me &#8212; especially anything commercial &#8212; that sells itself on its &#8220;experiential&#8221; qualities. I hate the word &#8220;immersive&#8221; in particular. &#8220;Here,&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">I have a long-held suspicion of anything directed at me &mdash; especially anything commercial &mdash; that sells itself on its &#8220;experiential&#8221; qualities. I hate the word &#8220;immersive&#8221; in particular. &#8220;Here, let me waterboard you with my new web app! You&#8217;re going to love it!&#8221; Basically, I&#8217;m suspicious of anything that seeks to appeal to me kinesthetically, rather than to my intellect. I want to be treated as a sentient agent; not as the passive stigma to someone&#8217;s dirty sense pollen.</p>
<p>It&#8217;s not that I don&#8217;t relish some experiences in life. It&#8217;s not that I don&#8217;t enjoy, well, enjoyment <i>per se</i>. It&#8217;s just that if I got my jollies from using <em>a website to book train tickets</em>, I&#8217;d have to ask myself some serious fucking questions. &#8220;Wow, adding that purchase to my shopping basket was just so darn delightful! Fuck it, I&#8217;ll buy more, for the same day, going to the same place, just for the experience of it all! Hnnnnnnnn.&#8221;</p>
<p>Sorry, I&#8217;ll calm down.</p>
<hr/>
<p>The other week I attended a user testing session as the lead designer and developer for an app intended to help people find out if they&#8217;re entitled to disability benefits. Predictably, and tragically, only a small proportion of the testers who&#8217;d signed up would make it to the session. Due to ill health. When the first tester finally arrived (Ian, let&#8217;s call him), we waited a full 5 minutes while he sat, head in hands, catching his breath after climbing just one flight of stairs. </p>
<p>Ian told me, in conversation during the session, that he had spent a decade of his life living as, essentially, a hermit; not interested in the trappings of modern, technologically mediated and socialized existence. He came equipped with a smart phone he&#8217;d acquired that week. It was a Windows phone, though he wasn&#8217;t aware of that.</p>
<p><em>Now</em>. </p>
<p>Do you think for a moment that Ian expected or wanted to <em>experience</em> our product? For it to impress and delight him as it enveloped his consciousness? Do you think he was looking to be carried away on a flying carpet of pixel perfection and shit that swooshes around arbitrarily? Do you think he watches Apple keynotes? Do you think he&#8217;s the sort who&#8217;d lean over to you and go, &#8220;hey, check out this new Honda advert! <strong>IT&#8217;S SO WELL DONE</strong>.&#8221; No, of course not, because he doesn&#8217;t care about interfaces, or design, or technology. He wanted using the app to be straightforward and painless and to get it all over with as quickly as possible.</p>
<p>That&#8217;s how <em>I</em> feel too, most of the time. I&#8217;m terrible at using interfaces, and I hate interfaces which try to draw me in, making me use them more than I should have to. That&#8217;s why I&#8217;m a User Experience Designer.</p>
<p>So, this is probably as good a time as any to tell you that I&#8217;ve been nominated for Designer Of The Year in the Net Awards and you can <a href="https://thenetawards.com/vote/designer/heydon-pickering/">vote for me</a>, haha.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/the-precarious-x-in-ux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frame Based Animation With Sass</title>
		<link>http://www.heydonworks.com/article/frame-based-animation-with-sass</link>
		<comments>http://www.heydonworks.com/article/frame-based-animation-with-sass#comments</comments>
		<pubDate>Fri, 05 Jun 2015 07:41:19 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Tools & Resources]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=247</guid>
		<description><![CDATA[Frame Based Animation with Sass I wanted an easy way to create traditional animations, wherein each frame is a different drawing. I created this Sass @mixin which generates keyframe animation&#8230;]]></description>
				<content:encoded><![CDATA[<section class="project">
<h2>Frame Based Animation with Sass</h2>
<p class="intro">I wanted an easy way to create traditional animations, wherein each frame is a different drawing. I created this Sass <code>@mixin</code> which generates keyframe animation blocks for nth children, placing each of these &#8220;frames&#8221; in an animated sequence. Note the use of the <code>steps(1)</code> timing function&hellip;</p>
<div aria-label="external links"><a href="https://github.com/Heydon/frame-based-animation">Code on Github (including Bower command for installation if preferable)</a></div>
</section>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/frame-based-animation-with-sass/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Agreement</title>
		<link>http://www.heydonworks.com/article/the-agreement</link>
		<comments>http://www.heydonworks.com/article/the-agreement#comments</comments>
		<pubDate>Sun, 10 May 2015 23:55:36 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=236</guid>
		<description><![CDATA[I had this one friend at school. Let&#8217;s call him Darren. Darren was a liar &#8212; a compulsive one &#8212; and boy did he tell some whoppers. Not &#8220;the world&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro">I had this one friend at school. Let&#8217;s call him Darren. </p>
<p>Darren was a liar &mdash; a compulsive one &mdash; and boy did he tell some whoppers. Not &#8220;the world was created in one week&#8221; whoppers, but big ones nonetheless.</p>
<p>One lie Darren would tell, at the age of 12, was that he had lost his virginity. Now, nobody had any primary evidence (eww) that this was <em>not</em> the case. But his diminutive age, the fact that he went to an all boys school, his reputation for demonstrably lying in other cases and his resemblance to a tug boat all contributed to the incredibility of his claim. Not one of us could <em>prove</em> he was a virgin, but it stood to reason that he was.</p>
<p>The part I find interesting is that none of the other 12-year-old boys would question his claim. Not one. Not because they didn&#8217;t know how, or were afraid to confront him, but because it would not be politic. The unwritten law stated that one unbelievable lie was worth another and, so long as we didn&#8217;t skewer his fantasy, he would have to accept that he couldn&#8217;t skewer ours.</p>
<p>Within weeks, every gawky, unattractive and socially inept 12-year-old boy who had come into contact with Darren was a virgin no longer. An agreement had formed, quite organically; an unspoken one to believe the unbelievable. </p>
<p>So what do you suppose would happen to any boy who questioned the ludicrous sexual voracity of our barely pubescent cohort? What do you suppose would happen to the boys who, when asked, &#8220;have you lost your virginity too?&#8221; would reply, &#8220;of course not, I&#8217;m twelve years old.&#8221; Naturally, they were set upon; teased and taunted and ridiculed. The defenders were so fierce because the lie was so fragile.</p>
<p>I&#8217;m ashamed to say I sometimes tended to be a &#8220;defender&#8221; as a child, but I try my best to be the kid who says &#8220;nope&#8221; as an adult. For others, reaching maturity does not appear to be a case of growing the confidence to be truthful. Others choose to weaponize their unbeliefs, trading taunts for decapitations. Why? Because the shame of lying to oneself is cumulative over time, and because the starkness of violent acts make the lies that beget them feel ever so true.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/the-agreement/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Double Edged Sword</title>
		<link>http://www.heydonworks.com/article/a-double-edged-sword</link>
		<comments>http://www.heydonworks.com/article/a-double-edged-sword#comments</comments>
		<pubDate>Tue, 28 Oct 2014 13:16:15 +0000</pubDate>
		<dc:creator><![CDATA[Large Heydon Collider]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.heydonworks.com/?p=217</guid>
		<description><![CDATA[Editor&#8217;s note: This article has been submitted anonymously to me as the editor of geekmentalhelp.com &#8212; the website of the #geekmentalhelp campaign. Not everyone is in a position to &#8220;come&#8230;]]></description>
				<content:encoded><![CDATA[<p class="intro"><strong>Editor&#8217;s note:</strong> <em>This article has been submitted anonymously to me as the editor of <a href="http://www.geekmentalhelp.com">geekmentalhelp.com</a> &mdash; the website of the <a href="https://twitter.com/search?src=typd&#038;q=%23geekmentalhelp">#geekmentalhelp</a> campaign. Not everyone is in a position to &#8220;come out&#8221; as a sufferer of mental health problems, but they are still out there; members of our community.</em></p>
<hr />
<p>This week is <strong>Geek Mental Help Week</strong>. I admit to having mixed feelings about this. On one hand, I salute the effort. We need more awareness of these very disabling conditions. On the other hand, these kind of awareness campaigns hit me hard and I end up just wanting to crawl under a rock until they are over.</p>
<p>I am a geek. Nowhere as geeky as some, but certainly geeky enough to wear that hat with pride.</p>
<p>I also have been dealing with chronic (often severe) depression for the last 30 or so years. This is not something I  discuss in public as there is still much stigma attached to it. There are very real risks to me and my loved ones if  the fact I deal with depression, and its extent, became known. This is why I asked this post be anonymous.</p>
<p>And in part it is why awareness campaigns such as the <a href="http://geekmentalhelp.com">Geek Mental Help Week</a> are so important. The public needs to be educated about the existence and the reality of mental illnesses, including in the IT world. And our geeky brothers and sisters who battle mental illness need to know they aren&#8217;t alone. Mental illness exists. <a href="http://www.nimh.nih.gov/health/statistics/prevalence/serious-mental-illness-smi-among-us-adults.shtml">4.6% of adult Americans experienced a serious mental illness in 2012</a>. <a href="http://www.cmha.ca/media/fast-facts-about-mental-illness/#.VE7I1Mn63Es">20% of Canadians will personally experience a  mental illness in their lifetime</a>. <a href="http://www.mentalhealth.org.uk/help-information/mental-health-statistics/suicide/">In the UK, suicide is the leading cause of death for folks under the age of 35</a>. I&#8217;m glad these issues are being discussed. I&#8217;m glad these stories are coming out.</p>
<p>That said, I find it <em>incredibly difficult</em> to have stories of depression thrown in my face, over and over, and over again. I want to scream &quot;ENOUGH ALREADY!&quot; I&#8217;m still healing from the furor that hit the web after Robin Williams committed suicide. A lot of well intentioned individuals were talking about it. They were discussing the importance of reaching out to people and making sure every suicidal individual out there had access to help. I&#8217;m not sure how many of these people realized the negative impact they were having on a lot of people in situations like mine. There&#8217;s rarely a day that goes by without me thinking about suicide. </p>
<p>I&#8217;m reminded of the <a href="https://www.ruok.org.au/">R U Ok?</a> campaign that came out of Australia, &quot;encouraging all Australians to regularly and meaningfully ask anyone struggling with life, &#8216;are you ok?&#8217;&quot; It looked like people were randomly asking people &quot;Are you ok?&quot; They asked you that, and seemed to think it discharged them of responsibility. I&#8217;ve wanted to answer back &quot;No, I&#8217;m not ***king ok,&quot; just to see what they would say, what they would do. But I knew full well there was nothing they could do or say for <em>me</em>.</p>
<p>In some respect, it&#8217;s a bit like the media campaigns about &quot;speed kills&quot; or &quot;don&#8217;t drink and drive,&quot; you know, the graphic ads showing the effect of a high speed car crash? It doesn&#8217;t seem to have a real effect on people who speed or drink. But it sure as hell has a direct and negative impact on people who have lost loved ones in car crashes caused by people who were speeding or drinking.</p>
<p>I have a favor to ask of you. If you are new to this, if you have no experience of dealing with mental illness (personally or through loved ones), please, do take a moment to consider the impact of your enthusiasm about the issue. Because awareness campaigns are double-edged swords. We need to build awareness without forgetting there are real people, suffering real pain, that sometimes get caught in the cross-fire.</p>
<p>In the meantime, I know that the thing for me to do is withdraw when these things happen. I need to take my distance from the onslaught. And so once more, I shall disconnect for a few days, until the enthusiasm fades a bit, until I can hang out without being confronted with so much talk about mental illness.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.heydonworks.com/article/a-double-edged-sword/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.341 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2017-04-23 08:44:43 -->
