<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Florian van der Wielen</title>
    <description>The latest articles on DEV Community by Florian van der Wielen (@fvanderwielen).</description>
    <link>https://dev.to/fvanderwielen</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F20238%2F8cffc567-3aab-4f7f-8a69-9f467789e8cb.png</url>
      <title>DEV Community: Florian van der Wielen</title>
      <link>https://dev.to/fvanderwielen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fvanderwielen"/>
    <language>en</language>
    <item>
      <title>Starting with Orca</title>
      <dc:creator>Florian van der Wielen</dc:creator>
      <pubDate>Wed, 30 Jun 2021 10:59:12 +0000</pubDate>
      <link>https://dev.to/fvanderwielen/starting-with-orca-1p31</link>
      <guid>https://dev.to/fvanderwielen/starting-with-orca-1p31</guid>
      <description>&lt;p&gt;Lately I have been doing a lot of website development work in ubuntu, so I tried out orca, the screen reader for Linux. This article is based on my notes that I wrote learning to use orca, hope it may help you as well!&lt;/p&gt;

&lt;p&gt;Orca works well, but a little different than NVDA, with which I have a little more experience in. To be honest, the voice sounds a little less natural, but after a bit of getting used to, it is fine. All in all, it feels like a very feature complete screenreader to me, very workable (which is not always the case for Linux equivalents, so props to prioritize where it matters!).&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation and set up
&lt;/h2&gt;

&lt;p&gt;Orca comes pre installed by default in recent ubuntu releases, as it should! I tried it for the most recent LTS release at time of writing, 20.04 Focal Fossa. The OS settings screen (called settings) only has a start/stop switch for the screenreader, which is also in the OS accessibility settings in the top right for easy access.&lt;/p&gt;

&lt;p&gt;The settings for orca itself are in their own UI application, accessible from the command line via &lt;code&gt;orca -s&lt;/code&gt;. In here you find lots to configure, but the defaults are good to get you started. Typically voices are again per language, turn on the Dutch voice here for example.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting orca
&lt;/h2&gt;

&lt;p&gt;Orca itself is easy to turn on, but as most Linux software are developed as individual projects and struggle a bit on integration with each other and the OS, I experienced a hiccup here. The problem was that orca was not dictating the page of my already running and active Firefox browser. I found a quick and easy fix luckily: after starting Orca, you need to (re)start your browser, such that Orca can 'find' it and read out loud what is on the page. So just restarting Firefox solved the problem for me, not too much hassle as it remembers active sessions and open tabs across the restart.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shortcut keys
&lt;/h2&gt;

&lt;p&gt;Like all screenreaders, Orca is mainly controlled via the keyboard as that works best for its intended audience. Also like most other screenreaders, Orca has an 'Orca modifier key', a key that is used in a lot of shortcuts to keep the screenreader shortcuts away from other hotkey combinations. This key is for 'desktop keyboards' the insert key of the numerical section of the keyboard, but you can change this, as for example laptops quite frequently do not have that section of the keyboard.&lt;/p&gt;

&lt;p&gt;Please see the below table for some useful shortcut key combinations:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What&lt;/th&gt;
&lt;th&gt;Key combination&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Orca Modifier&lt;/td&gt;
&lt;td&gt;typically insert (in so-called desktop mode)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toggle Orca on and off in GNOME&lt;/td&gt;
&lt;td&gt;Super+Alt+S.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enter Learn Mode&lt;/td&gt;
&lt;td&gt;Orca Modifier+H&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exit Learn Mode&lt;/td&gt;
&lt;td&gt;Esc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Display a list of headings&lt;/td&gt;
&lt;td&gt;Alt+Shift+H&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Display a list of links&lt;/td&gt;
&lt;td&gt;Alt+Shift+K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Display a list of landmarks&lt;/td&gt;
&lt;td&gt;Alt+Shift+M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KP&lt;/td&gt;
&lt;td&gt;keypad (keyboardnumerical section, with num lock off!)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;current location&lt;/td&gt;
&lt;td&gt;KeyPad enter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;page summary&lt;/td&gt;
&lt;td&gt;KP enter (twice)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Links/references:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The help pages of orca are very extensive, you can find some useful shortcut keys here: &lt;a href="https://help.gnome.org/users/orca/stable/commands_structural_navigation.html.en"&gt;https://help.gnome.org/users/orca/stable/commands_structural_navigation.html.en&lt;/a&gt;
and here: &lt;a href="https://help.gnome.org/users/orca/stable/commands_reading.html.en"&gt;https://help.gnome.org/users/orca/stable/commands_reading.html.en&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;For more info in how to use a screen reader in general, you can read &lt;a href="https://dev.to/fvanderwielen/starting-with-nvda-4c96?target=_blank"&gt;my previous blogpost on NVDA&lt;/a&gt; on that.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also on twitter you can follow Florian Beijers, going by the handle &lt;a href="https://twitter.com/zersiax"&gt;@zersiax&lt;/a&gt;, by my understanding he is an expert orca user and allround very knowledgeable about web accessibility (which makes me weirdly proud as someone with the same uncommon name, haha)&lt;/p&gt;

&lt;p&gt;I hope you found this article useful, and if you have some tips yourself , questions, or remarks, please leave them in the comments below!&lt;/p&gt;

</description>
      <category>orca</category>
      <category>screenreader</category>
      <category>a11y</category>
    </item>
    <item>
      <title>starting with NVDA</title>
      <dc:creator>Florian van der Wielen</dc:creator>
      <pubDate>Fri, 09 Apr 2021 06:06:14 +0000</pubDate>
      <link>https://dev.to/fvanderwielen/starting-with-nvda-4c96</link>
      <guid>https://dev.to/fvanderwielen/starting-with-nvda-4c96</guid>
      <description>&lt;p&gt;If you want to build accessible websites, you should check whether they work well together with screenreaders. A screenreader is a software application that reads the screen aloud for the user, typically used by people who are blind. NVDA is one of the most important screenreaders that work on Windows, so you should check whether your site works with NVDA. As NVDA is free, the treshold is low, but screenreaders are complex and challenging applications to start using, so I decided to make this writeup to get you going.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;NVDA - NonVisual Desktop Access - is made by NV access, and you can download the installer from their website: &lt;a href="https://www.nvaccess.org/download/"&gt;https://www.nvaccess.org/download/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Set up
&lt;/h2&gt;

&lt;p&gt;By default the voice NVDA uses to read aloud is based on English pronounciation. As I build Dutch websites, I want to use a Dutch language voice. NVDA can access the voices installed on Windows 10, so it can use the same voices as Narrator. Otherwise NVDA can use the bundler e-Speak-NG. For more information on installing additional languages see here: &lt;a href="https://github.com/nvaccess/nvda/wiki/ExtraVoices"&gt;https://github.com/nvaccess/nvda/wiki/ExtraVoices&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NVDA also has a so-called speech viewer, which is a modal that shows which text NVDA is reading aloud right now. Useless for the blind, but useful for testing purposes and getting used to screenreader usage for visual people such as us. To turn this on, you can find the option in the NVDA system tray menu, in the tools submenu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;The main input device for screenreaders is the keyboard, so most input to screenreaders goes via hotkeys, or key combinations. Like most screenreaders, NVDA has a "NVDA key" with is used by many hotkey combinations. This is what is meant with NVDA in the upcoming table. See the table for a few of the most commonly used or important hotkeys.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Hotkey&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;th&gt;Use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NVDA + t&lt;/td&gt;
&lt;td&gt;Speak title bar&lt;/td&gt;
&lt;td&gt;know on which page you are&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NVDA + tab&lt;/td&gt;
&lt;td&gt;Report current focused object&lt;/td&gt;
&lt;td&gt;know where you are on the page, which kind of element&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NVDA + F7&lt;/td&gt;
&lt;td&gt;Show lists of landmarks, headings, links, ...&lt;/td&gt;
&lt;td&gt;These lists allow a user to quickly go to their point of interest&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Insert + down arrow or Numpad +&lt;/td&gt;
&lt;td&gt;continue talking&lt;/td&gt;
&lt;td&gt;similar to continue reading for a visually able user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Control&lt;/td&gt;
&lt;td&gt;stop reading&lt;/td&gt;
&lt;td&gt;Sometimes you want it to stop ;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NVDA + ctrl + F&lt;/td&gt;
&lt;td&gt;search&lt;/td&gt;
&lt;td&gt;to search for text&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NVDA + 1&lt;/td&gt;
&lt;td&gt;help&lt;/td&gt;
&lt;td&gt;to help with NVDA usage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For more hotkeys, see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nvaccess.org/files/nvdaTracAttachments/455/keycommands%20with%20laptop%20keyboard%20layout.html"&gt;https://www.nvaccess.org/files/nvdaTracAttachments/455/keycommands%20with%20laptop%20keyboard%20layout.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dequeuniversity.com/screenreaders/nvda-keyboard-shortcuts"&gt;https://dequeuniversity.com/screenreaders/nvda-keyboard-shortcuts&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NVDA also has a built in screen curtain, which blacks out most of the screen. It is a so-called "empathy tool", so you as a visually able person can really experience the website a bit more like a blind person would. This is important to try some time, to really get a feel of how muuch - or actually how few - information and overview you get when you cannot see your website but only rely on the screenreader.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real&lt;sup&gt;TM&lt;/sup&gt; screenreader usage
&lt;/h2&gt;

&lt;p&gt;now that we know a little bit on how to actually do something - anything - with a screenreader, it is useful to know what screenreaders actually do with this in the Real World&lt;sup&gt;TM&lt;/sup&gt;. To that end I can recommend the following videos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Léonie Watson: how a screen reader uses the web 
&lt;a href="https://www.youtube.com/watch?v=OUDV1gqs9GA"&gt;https://www.youtube.com/watch?v=OUDV1gqs9GA&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Screen Reader Basics: NVDA  (hear the old voice...) 
&lt;a href="https://www.youtube.com/watch?v=Jao3s_CwdRU"&gt;https://www.youtube.com/watch?v=Jao3s_CwdRU&lt;/a&gt; part of a11ycasts playlist &lt;a href="https://www.youtube.com/watch?v=HtTyRajRuyY&amp;amp;list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g"&gt;https://www.youtube.com/watch?v=HtTyRajRuyY&amp;amp;list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;(added 20/5) Deque has made a video on the same subject as this post! quite recommend it: &lt;a href="https://www.youtube.com/watch?v=Vx1vSd5uYS8"&gt;https://www.youtube.com/watch?v=Vx1vSd5uYS8&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>nvda</category>
      <category>screenreader</category>
      <category>a11y</category>
    </item>
    <item>
      <title>Building a pattern library</title>
      <dc:creator>Florian van der Wielen</dc:creator>
      <pubDate>Tue, 27 Oct 2020 11:56:05 +0000</pubDate>
      <link>https://dev.to/fvanderwielen/building-a-pattern-library-cpa</link>
      <guid>https://dev.to/fvanderwielen/building-a-pattern-library-cpa</guid>
      <description>&lt;p&gt;In this short write-up, I want to take you along into the world of pattern libraries. First, let's investigate what is a pattern library. Then we dive right in with relevant features and considerations when choosing a pattern library, and some brief examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a pattern library
&lt;/h2&gt;

&lt;p&gt;First, let's talk about a &lt;strong&gt;design system&lt;/strong&gt;, which is a way of working of systematically designing and building your frontend, such that it adds value: consistent branding, ease of reuse across the applications, and ease of maintenance/continuous improvement, and with it, supporting iterative design.&lt;/p&gt;

&lt;p&gt;This means thinking, designing and building in reusable design building blocks, and some place to show these blocks to make them first class citizens in your design process. Such a place is called a &lt;strong&gt;pattern library&lt;/strong&gt;, and this kind of tool is therefore the cornerstone of a design system way of working. There are many such tools, so there is a choice to be made here, with many relevant considerations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful features of pattern libraries
&lt;/h2&gt;

&lt;p&gt;A pattern library is a tool during development, as well as a showcase of all your built patterns. As such, development "quality of life" features are much appreciated, such as file watchers, live reloading, browsersync, that &lt;strong&gt;shorten the cycle from code to visible component&lt;/strong&gt;. The quick iteration that this allows, will let you as developers and designers radically shift your work process from handing over designed images and checking when development is done, to working together behind the same computer, constructively going back and forth about what works best for the user with the available technology. To get an idea of how this flow might look like, I can recommend the following conference talk from Rachel Andrew: &lt;br&gt;
&lt;iframe src="https://player.vimeo.com/video/292470224" width="710" height="399"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Other quality of life points help as well, such as easily checking your component in different browsers and/or window sizes. This allows you to bring &lt;strong&gt;mobile first&lt;/strong&gt; much easier into your design/development process, which is a must nowadays.&lt;/p&gt;

&lt;p&gt;As your pattern library is also a showcase of your components, you want it to have &lt;strong&gt;proper documentation&lt;/strong&gt;. There are many aspects and nuances in good design, that you want to come across to the people that will use your pattern library. Things such as design tokens, color systems, or fonts, that may have specific use cases. This is useful for other readers, as well as during the evolution of your patterns, because another key feature of a pattern library is that it is a &lt;strong&gt;living document&lt;/strong&gt;, a good design system is maintained when it needs to. This means that besides showing components, you want your pattern library to support generic documentation pages.&lt;/p&gt;

&lt;p&gt;You want your pattern library to be easily readable and accessible, because that is how it is used. As such, because it is a web application or website, people should have access to that website. This means (amongst others) that it needs to be &lt;strong&gt;easily deployable&lt;/strong&gt; to a web server.&lt;/p&gt;

&lt;p&gt;Your components are not only exisiting in your pattern library, the idea is that they are used with fewest effort in your production applications. Therefore it is very useful to keep your components portable, by using the same &lt;strong&gt;template language&lt;/strong&gt; across pattern library and other applications. This can be tricky though, as a production application built in backend technology such as (Java, C#, or a some packaged solution) might not support any typical frontend template language, whilst the pattern library is used and mainained by the frontend developers in frontend technology.&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Fractal&lt;/strong&gt; is a useful choice as a pattern library. It runs as an express server with watchers during development, and can be exported as static flat HTML, CSS, and Javascript files that can be hosted on an HTTP server without any logic. As it is built on express, Node and NPM, it can be easily fit into an existing frontend project, which already uses this technology, and it also allows for some extensibility. For more information, see &lt;a href="https://fractal.build/"&gt;https://fractal.build/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another great pattern library tool is &lt;strong&gt;Storybook&lt;/strong&gt;. Storybook has great frontend framework support. It also comes with a lot of bells and whistles, such as plugins, which allows you build a great workflow in development, as well as improving the showcase aspect of it by leveraging the frontend framework in which the components are built. These extras might be difficult to fit into an ongoing project though, as they might compete with something existing that works differently. See also &lt;a href="https://storybook.js.org/"&gt;https://storybook.js.org/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;As you might have noticed, there are many aspects to choosing a pattern library, but do not feel overwhelmed. In the end it is not about making the right choice, but about making a choice that works for you, as you and your team needs to be able to work with it. There is no right or wrong, especially with so many considerations and so many tools in active development.&lt;/p&gt;

</description>
      <category>patternlibrary</category>
      <category>fractal</category>
      <category>storybook</category>
    </item>
  </channel>
</rss>
