<?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>Forem: Ashley Smith</title>
    <description>The latest articles on Forem by Ashley Smith (@ashleysmith2).</description>
    <link>https://forem.com/ashleysmith2</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%2F948426%2F584d4c70-ba63-44f9-b531-a58c4f8e15ba.jpeg</url>
      <title>Forem: Ashley Smith</title>
      <link>https://forem.com/ashleysmith2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ashleysmith2"/>
    <language>en</language>
    <item>
      <title>Accessibility Breakdown | Focusable Indicators</title>
      <dc:creator>Ashley Smith</dc:creator>
      <pubDate>Wed, 05 Jun 2024 17:00:00 +0000</pubDate>
      <link>https://forem.com/devsatasurion/accessibility-break-down-focusable-indicators-1ibe</link>
      <guid>https://forem.com/devsatasurion/accessibility-break-down-focusable-indicators-1ibe</guid>
      <description>&lt;p&gt;Todays mini series of things you can do &lt;strong&gt;right now&lt;/strong&gt; focuses on enhancing the accessibility (a11y) of focusable indicators in your application. Let's get into it:&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it Matters:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility Impact&lt;/strong&gt;: Clear focus indicators are crucial for users with disabilities to navigate effectively, ensuring they can identify interactive elements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Experience&lt;/strong&gt;: Proper focus indicators prevent confusion and empower users to interact with your application confidently.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quick Check:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual Scan&lt;/strong&gt;: Quickly review your application for interactive elements that may lack visible focus indicators using &lt;strong&gt;tab navigation&lt;/strong&gt;.  You may use Enter or Spacebar to activate buttons or links.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Tools&lt;/strong&gt;: Use accessibility testing tools such as &lt;a href="https://chromewebstore.google.com/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd?utm_source=deque.com&amp;amp;utm_medium=referral&amp;amp;utm_campaign=axe_hero"&gt;Axe&lt;/a&gt; or &lt;a href="https://chromewebstore.google.com/detail/wave-evaluation-tool/jbbplnpkjmmeebjpijfedlgcdilocofh"&gt;WAVE&lt;/a&gt; to identify elements with missing or inadequate focus indicators. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screen Reader&lt;/strong&gt;: Sometimes a screen reader might use different keys to activate focusable elements so ensure you check using both with and without a screen reader.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quick Fixes:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Enhance Focus Styles&lt;/strong&gt;: Ensure interactive elements have clear and distinct focus styles, making them visible and easy to identify. Typically this involves adding a solid color outline or changing the background color of the element. &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppjljdxi2oww4zoycimg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppjljdxi2oww4zoycimg.png" alt="Image description" width="698" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Avoid disabling the default focus ring provided by browsers unless you replace it with an equally visible alternative. This is particularly important for keyboard users.&lt;/li&gt;
&lt;li&gt;Ensure that all focusable elements have consistent focus styles across the application to maintain a uniform user experience&lt;/li&gt;
&lt;li&gt;For low vision or color-blind users ensure a &lt;strong&gt;highly&lt;/strong&gt; visible focus indicator, such as a thick outline or contrasting color is used so there is no confusion.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Focus Management&lt;/strong&gt;: Implement proper focus management to ensure that focus moves logically through focusable elements, enhancing keyboard navigation. An example would be when a user clicks a button that opens a modal ensuring that the focus moves into the modal dialog and on close of the modal moves back to the button.&lt;br&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;openModalButton&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;openModalButton&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;closeModalButton&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;closeModalButton&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;modal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;modal&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;openModalButton&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;modal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;block&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;modal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;tabindex&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;-1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;modal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;focus&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;closeModalButton&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;modal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;none&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nx"&gt;openModalButton&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;focus&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Testing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Thoroughly test your application post-fix, using both keyboard navigation and assistive technologies like screen readers, to ensure focus indicators are visible and functional.&lt;/li&gt;
&lt;li&gt;Consider writing automated tests with Axe to automatically check for focus indicators as a custom rule.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;customRule&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`
            axe.configure({
                checks: [
                    {
                        id: 'focus-visible',
                        evaluate: function(node) {
                            const style = window.getComputedStyle(node);
                            return style.outlineStyle !== 'none' || style.boxShadow !== 'none';
                        },
                        metadata: {
                            impact: 'critical',
                            messages: {
                                fail: 'Focusable elements should have visible focus styles.'
                            }
                        }
                    }
                ],
                rules: [
                    {
                        id: 'focus-indicator',
                        selector: ':focus',
                        enabled: true,
                        any: ['focus-visible'],
                        tags: ['focus']
                    }
                ]
            });
        `&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By following these quick steps, you can quickly enhance the accessibility of focusable indicators in your application, contributing to a more inclusive online environment for all users. Accessibility is an ongoing journey, so start making a positive impact today!🌟&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Helpful links&lt;/strong&gt; &lt;br&gt;
Free A11y tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=&amp;amp;cad=rja&amp;amp;uact=8&amp;amp;ved=2ahUKEwj7uqDNm_D6AhUiEFkFHfvrB9QQFnoECBYQAQ&amp;amp;url=https%3A%2F%2Fwww.nvaccess.org%2Fdownload%2F&amp;amp;usg=AOvVaw3AAc5nrFrg0lylpULGjjxr"&gt;NVDA Screen Reader
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd"&gt;Axe DevTools Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wave.webaim.org/extension/"&gt;WAVE Browser Chrome Extension
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm"&gt;Web Developer Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ssa.gov/accessibility/andi/help/install.html"&gt;ANDI Accessibility Testing Tool
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A11y Info:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/"&gt;WCAG Standard Guidelines
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.a11yproject.com/"&gt;A11y Project
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>a11y</category>
      <category>accessibledevelopment</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Accessibility Breakdown | Navigating Landmarks</title>
      <dc:creator>Ashley Smith</dc:creator>
      <pubDate>Wed, 29 May 2024 17:00:00 +0000</pubDate>
      <link>https://forem.com/devsatasurion/accessibility-breakdown-navigating-landmarks-1g8g</link>
      <guid>https://forem.com/devsatasurion/accessibility-breakdown-navigating-landmarks-1g8g</guid>
      <description>&lt;p&gt;Todays mini series of things you can do &lt;strong&gt;right now&lt;/strong&gt;, is on navigating landmark accessibility. Landmarks are often overlooked but are crucial for inclusive browsing. We want everyone to navigate the digital landscape seamlessly. Let's get into it: &lt;/p&gt;




&lt;h2&gt;
  
  
  Why it Matters:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility Impact&lt;/strong&gt;: For individuals with disabilities, landmarks offer vital orientation within a webpage, empowering them to navigate independently and access content efficiently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Experience&lt;/strong&gt;: Landmarks provide essential cues, guiding users through webpage structures and improving navigation efficiency. Consider landmarks as road signs on a highway. Without them, one would struggle to navigate and reach their destinations efficiently. &lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quick Check:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Manual Inspection&lt;/strong&gt;: Scan your web pages for semantic HTML elements such as &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; to identify existing landmarks. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does all content exist inside a landmark? Look for supporting ARIA roles if landmarks aren't there. &lt;/li&gt;
&lt;li&gt;Avoid duplicate landmarks with the same role in the same context. For example, having two  tags on the same page can confuse screen reader users.&lt;/li&gt;
&lt;li&gt;For pages with dynamic content (e.g., single-page applications), ensure that landmarks are updated dynamically as the content changes. This helps screen readers keep up with the context shifts.&lt;/li&gt;
&lt;li&gt;You can use browser developer tools like Chrome DevTools to inspect the accessibility tree. &lt;/li&gt;
&lt;li&gt;You can use also use &lt;a href="https://chromewebstore.google.com/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm"&gt;Web Developer&lt;/a&gt; to help point these out.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2pubipq81tes2i6a8d8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2pubipq81tes2i6a8d8.png" alt="Image of web developer" width="800" height="231"&gt;&lt;/a&gt;&lt;/p&gt;
Web Developer tools



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Automated Tools&lt;/strong&gt;: Utilize accessibility evaluation tools like &lt;a href="https://developer.chrome.com/docs/lighthouse"&gt;Lighthouse&lt;/a&gt; or &lt;a href="https://chromewebstore.google.com/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd?utm_source=deque.com&amp;amp;utm_medium=referral&amp;amp;utm_campaign=axe_hero"&gt;Axe&lt;/a&gt; or &lt;a href="https://chromewebstore.google.com/detail/wave-evaluation-tool/jbbplnpkjmmeebjpijfedlgcdilocofh"&gt;WAVE&lt;/a&gt; to validate the presence and proper usage of landmarks automatically. You might see an error like this:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgg5d4w5t11zlvxlg1sv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgg5d4w5t11zlvxlg1sv.png" alt="landmark axe error" width="800" height="117"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Screen Reader Testing&lt;/strong&gt;: Test your web pages using a screen reader to ensure that landmarks are conveyed effectively to users who rely on auditory feedback. Can you understand each section of the page?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quick Fixes:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Semantic Markup&lt;/strong&gt;: Ensure accurate use of semantic HTML elements to define landmarks. Utilize appropriate tags to delineate content sections. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;: Contains introductory content, such as a website's title and navigation links.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;: Contains the main content of the webpage.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;: Groups related content together within the main section.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt;: Contains footer information, such as copyright details.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use what works for you.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Maintain consistency in landmark usage across different pages of the site. This provides a predictable experience for users.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ARIA Landmarks&lt;/strong&gt;: Supplement semantic HTML with ARIA landmarks for enhanced accessibility. Utilize roles like &lt;code&gt;role="banner"&lt;/code&gt;, &lt;code&gt;role="navigation"&lt;/code&gt;, &lt;code&gt;role="main"&lt;/code&gt;, and &lt;code&gt;role="complementary"&lt;/code&gt; to provide additional context.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use aria-label or aria-labelledby attributes to provide descriptive labels for landmarks when necessary&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;nav&lt;/span&gt; &lt;span class="na"&gt;aria-label=&lt;/span&gt;&lt;span class="s"&gt;"Primary Navigation"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  ...
&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Testing:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ensure that focus management practices (e.g., tabindex, focus trapping) do not interfere with landmark navigation.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test landmark functionality across different browsers and devices to ensure consistent behavior&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consider conducting user testing sessions with individuals who might use assistive technologies, or someone who isn't familiar with your app to gather feedback on the accessibility of landmarks and implement necessary adjustments that make sense.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By following these quick steps, you can quickly enhance the accessibility of how you utilize landmarks in your application, contributing to a more inclusive online environment for all users. Accessibility is an ongoing journey, so start making a positive impact today!🌟&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Helpful Links&lt;/strong&gt; &lt;br&gt;
Free A11y tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=&amp;amp;cad=rja&amp;amp;uact=8&amp;amp;ved=2ahUKEwj7uqDNm_D6AhUiEFkFHfvrB9QQFnoECBYQAQ&amp;amp;url=https%3A%2F%2Fwww.nvaccess.org%2Fdownload%2F&amp;amp;usg=AOvVaw3AAc5nrFrg0lylpULGjjxr"&gt;NVDA Screen Reader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd"&gt;Axe DevTools Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wave.webaim.org/extension/"&gt;WAVE Browser Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm"&gt;Web Developer Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ssa.gov/accessibility/andi/help/install.html"&gt;ANDI Accessibility Testing Tool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A11y Info:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/"&gt;WCAG Standard Guidelines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.a11yproject.com/"&gt;A11y Project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>a11y</category>
      <category>accessibilityadvocate</category>
      <category>webdev</category>
      <category>developers</category>
    </item>
    <item>
      <title>Accessibility Breakdown | Dynamic Content</title>
      <dc:creator>Ashley Smith</dc:creator>
      <pubDate>Wed, 22 May 2024 16:00:00 +0000</pubDate>
      <link>https://forem.com/devsatasurion/accessibility-breakdown-dynamic-content-38e3</link>
      <guid>https://forem.com/devsatasurion/accessibility-breakdown-dynamic-content-38e3</guid>
      <description>&lt;p&gt;Todays mini series of things you can do &lt;strong&gt;right now&lt;/strong&gt; covers checking and fixing dynamic content to make them more accessible.  Let's get into it:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ful9iu508998vhjz4sk2z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ful9iu508998vhjz4sk2z.png" alt="alert icon" width="108" height="93"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it Matters:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility Impact&lt;/strong&gt;: Dynamic content alerts play a vital role in ensuring that users with disabilities, particularly those using assistive technologies like screen readers, are aware of important changes or updates on a web page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Experience&lt;/strong&gt;: These alerts improve user engagement by providing timely information, enhancing the overall user experience.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quick Check:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual Inspection&lt;/strong&gt;: Begin by manually reviewing your application for dynamic content alerts. Look for notifications, messages, or updates that appear or change dynamically. The example below shows an alert that dynamically appears after a user clicks a link.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7law17zic533kgn7vxxh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7law17zic533kgn7vxxh.png" alt="Image description" width="782" height="294"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated Testing&lt;/strong&gt;: Utilize accessibility testing tools such as &lt;a href="https://chromewebstore.google.com/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd?utm_source=deque.com&amp;amp;utm_medium=referral&amp;amp;utm_campaign=axe_hero"&gt;Axe&lt;/a&gt; or &lt;a href="https://chromewebstore.google.com/detail/wave-evaluation-tool/jbbplnpkjmmeebjpijfedlgcdilocofh"&gt;WAVE&lt;/a&gt; to identify any dynamic content alerts that may be missing accessible labels or attributes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Screen Reader Testing&lt;/strong&gt;: Test your application using a screen reader to experience how dynamic content alerts are conveyed to users who rely on auditory feedback. If you close your eyes and you don't understand there was a content change or alert you'll need to add a fix.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quick Fixes:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use ARIA Roles and Attributes&lt;/strong&gt;: Ensure dynamic content alerts are properly marked up using Accessible Rich Internet Applications (ARIA) roles and attributes. For example, use &lt;code&gt;role="alert"&lt;/code&gt; on error messages or when a form is submitted to convey urgent notifications indicating to screen readers that it is important and should be announced immediately.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Dynamic content alert without proper ARIA markup --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"alert"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Error: Please enter a valid email address.
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;&amp;lt;!-- Dynamic content alert with proper ARIA markup --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"alert"&lt;/span&gt; &lt;span class="na"&gt;role=&lt;/span&gt;&lt;span class="s"&gt;"alert"&lt;/span&gt; &lt;span class="na"&gt;aria-live=&lt;/span&gt;&lt;span class="s"&gt;"assertive"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Error: Please enter a valid email address.
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Focus Management&lt;/strong&gt;: Implement focus management to ensure that screen readers announce newly appeared content to users and focus is appropriately set to the updated element. This can be achieved by adding a &lt;code&gt;tabindex&lt;/code&gt; attribute with a value of -1 to make the element focusable, and then calling something like a focus() method on it. This simple step ensures that screen reader users are alerted to the presence of new content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keyboard Accessibility&lt;/strong&gt;: Ensure users can dismiss or interact with dynamic alerts using keyboard controls alone, without relying on mouse input if needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9o31fnrhqzceysnr5wr8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9o31fnrhqzceysnr5wr8.png" alt="Dismiss Icon" width="142" height="132"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Testing:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Thoroughly test your application post-fix to ensure all dynamic content alerts are properly announced, understood, and accessible to users.&lt;/li&gt;
&lt;li&gt;Consider writing an Axe test using aria rules to ensure the proper attributes exist.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nf"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Accessibility tests&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Dynamic content alerts have proper ARIA attributes&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;container&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;YourComponentWithDynamicAlerts&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Replace with your component&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;axeConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;aria-roles&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;aria-allowed-attr&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;axe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;container&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;axeConfig&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toHaveNoViolations&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By following these quick steps, you can quickly enhance the accessibility of dynamic content in your application, contributing to a more inclusive online environment for all users. Accessibility is an ongoing journey, so start making a positive impact today! 🌟&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Helpful links&lt;/strong&gt; &lt;br&gt;
Free A11y tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=&amp;amp;cad=rja&amp;amp;uact=8&amp;amp;ved=2ahUKEwj7uqDNm_D6AhUiEFkFHfvrB9QQFnoECBYQAQ&amp;amp;url=https%3A%2F%2Fwww.nvaccess.org%2Fdownload%2F&amp;amp;usg=AOvVaw3AAc5nrFrg0lylpULGjjxr"&gt;NVDA Screen Reader
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd"&gt;Axe DevTools Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wave.webaim.org/extension/"&gt;WAVE Browser Chrome Extension
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm"&gt;Web Developer Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ssa.gov/accessibility/andi/help/install.html"&gt;ANDI Accessibility Testing Tool
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A11y Info:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/"&gt;WCAG Standard Guidelines
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.a11yproject.com/"&gt;A11y Project
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>a11y</category>
      <category>webdev</category>
      <category>webaccessibility</category>
      <category>inclusion</category>
    </item>
    <item>
      <title>Accessibility Breakdown | External Links</title>
      <dc:creator>Ashley Smith</dc:creator>
      <pubDate>Wed, 15 May 2024 16:00:00 +0000</pubDate>
      <link>https://forem.com/devsatasurion/accessibility-breakdown-external-links-42gm</link>
      <guid>https://forem.com/devsatasurion/accessibility-breakdown-external-links-42gm</guid>
      <description>&lt;p&gt;Todays mini series of things you can do &lt;strong&gt;right now&lt;/strong&gt; cover the essentials of checking and enhancing the accessibility (a11y) of external links in your application. As a rule of thumb, it's best not to use them, but sometimes we just can't avoid them! So let's get into it:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4pyrreh2h7tvbnqkm25l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4pyrreh2h7tvbnqkm25l.png" alt="external link icon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it Matters:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility Impact&lt;/strong&gt;: Clear indications of links opening in new tabs or leading to external websites are vital for users with disabilities to navigate seamlessly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Experience&lt;/strong&gt;: Prevents confusion and ensures users maintain control over their browsing experience.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quick Check:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual Scan&lt;/strong&gt;: Scan your application for links that may open in new tabs or lead to external sites. Look for links that use &lt;code&gt;target="_blank"&lt;/code&gt; inside the anchor tag which indicates opening in a new tab.
```react
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://example.com" rel="noopener noreferrer"&gt;Link Text&lt;/a&gt;&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
- **Automated Tools**: Use accessibility testing tools like [Axe](https://chromewebstore.google.com/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd?utm_source=deque.com&amp;amp;utm_medium=referral&amp;amp;utm_campaign=axe_hero) or [WAVE](https://chromewebstore.google.com/detail/wave-evaluation-tool/jbbplnpkjmmeebjpijfedlgcdilocofh) for detailed reports on accessibility issues, including missing link indicators.

- **Browser Extensions**: Install extensions like [Web Developer](https://chromewebstore.google.com/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm) to show you all your links, including those lacking proper indications. 

Using outline external link tool:
![Using outline external link tool on web developer extension](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r8zduqh2dg6barfesats.png)


Using link details:
![Using link details tool on web developer extension](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z66fxsq8pwhou4usulfe.png)



---

## Quick Fixes:

- **Text Indicators**: Provide visually hidden text (e.g., `&amp;lt;span class="sr-only"&amp;gt;(opens in a new tab)&amp;lt;/span&amp;gt;`) to indicate external links. The span will  be hidden except to a screen reader.

```react


&amp;lt;a href="https://example.com" target="_blank" rel="noopener noreferrer" class="external-link"&amp;gt;
    Visit Example Website
    &amp;lt;span class="sr-only"&amp;gt;(opens in a new tab)&amp;lt;/span&amp;gt;
  &amp;lt;/a&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visual Icon Indicators&lt;/strong&gt;: Include an icon with an appropriate alt attribute to indicate the behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com"&lt;/span&gt; &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt; &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"external-link"&lt;/span&gt; &lt;span class="na"&gt;aria-label&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Visit Example Website (opens in a new tab)"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    Visit Example Website &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;i&lt;/span&gt; &lt;span class="na"&gt;class&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"fas fa-external-link-alt"&lt;/span&gt; &lt;span class="na"&gt;aria-hidden&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;i&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;h2&gt;
  
  
  Testing:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Thoroughly test your application post-fix by using a screen reader to ensure all external links are properly indicated and accessible.&lt;/li&gt;
&lt;li&gt;Consider writing an Axe test to ensure all external links include a hidden &lt;span&gt; element, indicating they open in a new tab or similar idea.&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;

&lt;span class="nx"&gt;axe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dom&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
    &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;external-link-span&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a[target="_blank"][rel~="noopener"][rel~="noreferrer"]&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;check&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;_context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;spanElement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;element&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;querySelector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;span.sr-only&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;result&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;spanElement&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;External link should have a &amp;lt;span&amp;gt; indicating it opens in a new tab&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
      &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;By following these quick steps, you can quickly enhance the accessibility of external links in your application, contributing to a more inclusive online environment for all users. Accessibility is an ongoing journey, so start making a positive impact today! 🌟&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Helpful links&lt;/strong&gt; &lt;br&gt;
Free A11y tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=&amp;amp;cad=rja&amp;amp;uact=8&amp;amp;ved=2ahUKEwj7uqDNm_D6AhUiEFkFHfvrB9QQFnoECBYQAQ&amp;amp;url=https%3A%2F%2Fwww.nvaccess.org%2Fdownload%2F&amp;amp;usg=AOvVaw3AAc5nrFrg0lylpULGjjxr" rel="noopener noreferrer"&gt;NVDA Screen Reader
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd" rel="noopener noreferrer"&gt;Axe DevTools Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wave.webaim.org/extension/" rel="noopener noreferrer"&gt;WAVE Browser Chrome Extension
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm" rel="noopener noreferrer"&gt;Web Developer Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ssa.gov/accessibility/andi/help/install.html" rel="noopener noreferrer"&gt;ANDI Accessibility Testing Tool
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A11y Info:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/" rel="noopener noreferrer"&gt;WCAG Standard Guidelines
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.a11yproject.com/" rel="noopener noreferrer"&gt;A11y Project
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>a11y</category>
      <category>inclusion</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Accessibility Breakdown</title>
      <dc:creator>Ashley Smith</dc:creator>
      <pubDate>Wed, 08 May 2024 17:00:00 +0000</pubDate>
      <link>https://forem.com/devsatasurion/accessibility-breakdown-5c65</link>
      <guid>https://forem.com/devsatasurion/accessibility-breakdown-5c65</guid>
      <description>&lt;p&gt;Hey there, welcome to my mini-series all about making the digital world a friendlier and more accessible place for everyone! We're diving deep into the world of digital accessibility (a11y), uncovering the things that often get overlooked. From making sure everyone can easily use your website or app to creating a space where everyone feels included, I'm on a mission to make the internet a better place for all!&lt;/p&gt;

&lt;p&gt;Each of the coming mini-series posts are going to break down one thing you can quickly take action on to help improve your overall accessibility. Lets do a brief intro first!&lt;/p&gt;




&lt;h2&gt;
  
  
  Why is Accessibility Important?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Inclusivity:&lt;/strong&gt; Accessibility ensures that all individuals, regardless of their abilities or disabilities, can access and interact with your content, welcoming a wider audience. Remember, we all experience the digital world differently, and empathy reminds us to consider the diverse needs and experiences of our users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwnt0csuhjp1yk1om2q3b.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwnt0csuhjp1yk1om2q3b.PNG" alt="colorful circle with smaller circles of all shapes and sizes inside it" width="150" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compliance:&lt;/strong&gt; Following accessibility guidelines such as the Web Content Accessibility Guidelines (WCAG) ensures that you meet legal requirements and industry standards. Compliance not only mitigates the risk of potential lawsuits but also demonstrates your commitment to ethical and responsible digital practices.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcxdaydpr6c1b8n6ogr0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcxdaydpr6c1b8n6ogr0.png" alt="checkmark in box" width="150" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enhanced User Experience:&lt;/strong&gt; Accessibility features, such as alternative text for images, keyboard navigation, and clear headings, not only benefit users with disabilities but also improve the overall user experience for all visitors. Implementing these features can make your site easier to navigate, understand, and engage with, leading to higher user satisfaction and retention. Let's put ourselves in the shoes of our users, understanding and addressing their diverse needs.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgiiyk1qcs0o7u2154yc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgiiyk1qcs0o7u2154yc.png" alt="smiley face" width="150" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SEO Benefits:&lt;/strong&gt; Many accessibility practices align with search engine optimization (SEO) best practices. For example, providing descriptive alt text for images not only helps screen readers interpret content but also improves image search optimization. By optimizing your site for accessibility, you can potentially improve your search engine rankings and increase organic traffic. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehr6ygjhrirtmtts8wav.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fehr6ygjhrirtmtts8wav.png" alt="magnifying glass" width="150" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Brand Reputation:&lt;/strong&gt; Demonstrating a commitment to accessibility reflects positively on your brand's values and reputation. By prioritizing accessibility, you show that you care about all your users and are dedicated to providing an inclusive online environment. This can enhance trust and loyalty among your audience, ultimately contributing to the long-term success of your application. Let's cultivate empathy as a core value of our brand, showing empathy in action through our commitment to accessibility.  Accessibility isn't just a checkbox for compliance; it's about creating a more inclusive and welcoming online environment for everyone.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frbm5rauej85um1skw1jw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frbm5rauej85um1skw1jw.png" alt="heart" width="150" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we have an understanding about why A11y is so important come back to this mini-series each week to learn something new! 🌟&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Helpful links&lt;/strong&gt; &lt;br&gt;
Free A11y tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=&amp;amp;cad=rja&amp;amp;uact=8&amp;amp;ved=2ahUKEwj7uqDNm_D6AhUiEFkFHfvrB9QQFnoECBYQAQ&amp;amp;url=https%3A%2F%2Fwww.nvaccess.org%2Fdownload%2F&amp;amp;usg=AOvVaw3AAc5nrFrg0lylpULGjjxr"&gt;NVDA Screen Reader
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd"&gt;Axe DevTools Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wave.webaim.org/extension/"&gt;WAVE Browser Chrome Extension
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chromewebstore.google.com/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm"&gt;Web Developer Chrome Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ssa.gov/accessibility/andi/help/install.html"&gt;ANDI Accessibility Testing Tool
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A11y Info:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/"&gt;WCAG Standard Guidelines
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.a11yproject.com/"&gt;A11y Project
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>a11y</category>
      <category>inclusion</category>
      <category>wcag</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Breaking the Mold: Rethinking Daily Stand-Ups</title>
      <dc:creator>Ashley Smith</dc:creator>
      <pubDate>Thu, 05 Oct 2023 15:57:20 +0000</pubDate>
      <link>https://forem.com/devsatasurion/breaking-the-mold-rethinking-daily-stand-ups-3m98</link>
      <guid>https://forem.com/devsatasurion/breaking-the-mold-rethinking-daily-stand-ups-3m98</guid>
      <description>&lt;p&gt;If you have ever worked on a Lean or Agile development team, (and possibly even if you haven't) you have probably participated in some type of "stand up" daily meeting.  These meetings are about 15 minutes each day and typically are for everyone on the team to go over what they worked on the day before, what they are working on that day, and if they have anything that's blocking them from getting their work done. While we have all heard how important these are, are they actually providing value for your team?&lt;/p&gt;

&lt;p&gt;I was part of a small team, just four of us, diligently following the daily stand-up ritual. Our workdays were a whirlwind of Slack messages and collaborative efforts. However, I couldn't help but feel a sense of déjà vu during our stand-up meetings. It was like rehearsing lines for a play I already knew.&lt;/p&gt;

&lt;p&gt;The issue was, we were in constant communication. We discussed blockers, shared insights, and reviewed each other's progress throughout the day. We had just spent the previous day hashing out our weekly tasks, so I had a pretty good grasp of my teammates' projects. It dawned on me that I was interrupting my own important work to attend a meeting that felt increasingly like a time sink.&lt;/p&gt;

&lt;p&gt;Ever found yourself in a similar situation? Where you're racing against the clock, and those daily meetings start to feel like a detour from the real work? &lt;/p&gt;

&lt;p&gt;If your stand-ups feel monotonous and valueless, consider removing them.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;What???&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;I know, I know how could I? That goes against everything you have ever been taught. &lt;/p&gt;

&lt;p&gt;There are several factors to consider in making this decision.  Let's think about the Lean approach for a minute. Lean Development in software is about delivering value efficiently by eliminating waste and optimizing processes. It's a method focused on rapid experimentation, validated learning, and iterative product development to reduce risk and create successful businesses. Some key components are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minimize Waste&lt;/li&gt;
&lt;li&gt;Continuous Improvement&lt;/li&gt;
&lt;li&gt;Adaptability&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where's the Value?
&lt;/h2&gt;

&lt;p&gt;So where's the value in these meetings? Of course we know it's important to stay aligned as a team but I want you to really think about your teams processes and how you keep track of work. Are there other meetings in which you already are aligning with your teammates? Does your team communicate consistently throughout the day over a chat system like slack? This meeting could be considered &lt;strong&gt;'waste'&lt;/strong&gt; if all you are doing is repetitive listing off your work and moving on with your day.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gaoNEeq3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5smstkaw0wi7kzukw9dn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gaoNEeq3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5smstkaw0wi7kzukw9dn.png" alt="trash bin" width="800" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  What is Waste?
&lt;/h4&gt;

&lt;p&gt;Waste can be considered as investing time without gaining value. To determine if your stand-up is waste to your team, we can practice continuous improvement.&lt;/p&gt;

&lt;h4&gt;
  
  
  Continuous Improvement
&lt;/h4&gt;

&lt;p&gt;As a team you should be participating in the ongoing process of identifying, implementing, and iterating on enhancements to your processes, and practices. These incremental adjustments help to achieve higher quality and efficiency over time.&lt;/p&gt;

&lt;p&gt;In relation to unnecessary meetings, this means recognizing and addressing the waste generated by these meetings. Teams should regularly assess their meeting practices, aiming to reduce or eliminate meetings that don't add value. Gather feedback from everyone to see if they felt the meeting was valuable or "it should have been an email". This leads us to &lt;strong&gt;adaptability&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  How to Adapt
&lt;/h4&gt;

&lt;p&gt;It's important for your team to stay flexible, and open to adjustments. An adaptable approach allows teams to pivot and in turn leading to improved outcomes and a more responsive development process with value. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8Nmxfh6E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e37o75nice3432uicrdt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8Nmxfh6E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e37o75nice3432uicrdt.png" alt="metal springs" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Does this always mean elimination? Definitely not! Making a decision to switch it up and re-assess is okay! Here are some alternative ideas when you recognize stand-ups are no longer providing value:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using a dedicated slack thread or channel each day to log what your YTB (yesterday, today, blockers).&lt;/li&gt;
&lt;li&gt;Consider leaving the meeting slot on the calendar as an open meeting where the team can be prepared for joining &lt;em&gt;if&lt;/em&gt; someone on the team wants to discuss any blockers, but able to be skipped if there is nothing to discuss.&lt;/li&gt;
&lt;li&gt;Logging status updates within project management tools or a location everyone can easily find.&lt;/li&gt;
&lt;li&gt;Using Kanban Boards or other visual project management tools that are updated real time&lt;/li&gt;
&lt;li&gt;Weekly or sprint reviews that are more comprehensive and reflect on the outcomes&lt;/li&gt;
&lt;li&gt;Instead of standup, use the time for 'show and tell'&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember, your workspace and work processes are constantly evolving, just like technology! If you decide to eliminate daily stand-ups, prioritize &lt;strong&gt;collaboration and communication&lt;/strong&gt; to ensure success. Don't hesitate to experiment; you can always reintroduce them if needed!"&lt;/p&gt;

&lt;h3&gt;
  
  
  Let me hear from you!
&lt;/h3&gt;

&lt;p&gt;I would love to hear your thoughts and opinions on this idea! Has your team tried any of these options? Were there any other solutions that worked for your team? Let me know in the comments!&lt;/p&gt;

&lt;p&gt;If you want to learn more about Lean development check out the books below.&lt;/p&gt;




&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Lean Startup by Eric Ries&lt;/li&gt;
&lt;li&gt;Implementing Lean Software Development: From Concept to Cash by Mary and Tom Poppendieck&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>standups</category>
      <category>development</category>
      <category>communication</category>
      <category>developers</category>
    </item>
    <item>
      <title>How ChatGPT can help your code be accessible</title>
      <dc:creator>Ashley Smith</dc:creator>
      <pubDate>Fri, 27 Jan 2023 17:59:13 +0000</pubDate>
      <link>https://forem.com/devsatasurion/how-chatgpt-can-help-your-code-be-accessible-2kfk</link>
      <guid>https://forem.com/devsatasurion/how-chatgpt-can-help-your-code-be-accessible-2kfk</guid>
      <description>&lt;p&gt;Sometimes &lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/"&gt;accessibility&lt;/a&gt; (also known as a11y) can be a bit of a puzzle.&lt;/p&gt;

&lt;p&gt;Whether you're a new developer still learning the ropes or a seasoned dev properly labeling your code, there's a chance you still rely on Google to help you out. For instance, you may know you need to add aria-* attributes somewhere, but you don't want to overdo it because the screen-reader may get confused. You want to make sure you touch on all types of accessibility like sighted individuals, hearing impaired as well as anyone using screen-readers. Well, look no further. In this post, we'll talk about a popular tool-ChatGPT- and how it can help you piece together the accessibility puzzle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Whats ChatGPT?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://openai.com/blog/chatgpt/"&gt;ChatGPT&lt;/a&gt; is a computer program that can understand and respond to human language. You can think of it like a robot that can talk to you and help you find information.&lt;/p&gt;

&lt;h2&gt;
  
  
  How?
&lt;/h2&gt;

&lt;p&gt;We’ve all heard of the amazing things ChatGPT can do for us, so why not use it to our advantage as developers!? One of the best skills a developer can have is learning how to ask the right questions. This goes for asking Google, stack-overflow, or your own teammates. You’ll need this skill for ChatGPT to work for you AND with you.&lt;/p&gt;

&lt;p&gt;Let me walk you through an example of using ChatGPT, and how it can help us work towards accessibility.&lt;/p&gt;

&lt;p&gt;Say we want to make a simple button accessible. You can always just ask ChatGPT how to do that.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;How can I make a simple HTML button accessible?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Asking this question will give you some pretty good information about the basic accessibility of a button, but it may not give you exactly what you need. When asking ChatGPT to do something, you need to be really specific. This can mean breaking your question down into multiple questions that are based off each other or the previous answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some good things to think about are:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What coding language are you using?&lt;/li&gt;
&lt;li&gt;Are you using any frameworks? &lt;/li&gt;
&lt;li&gt;What type of a11y? (i.e. visually impaired, hearing impaired, screen-readers etc.)&lt;/li&gt;
&lt;li&gt;What level of a11y? WCAG 2.1 A (lowest), AA (mid-range), and AAA (highest)&lt;/li&gt;
&lt;li&gt;Do you want any specific verbiage or colors to be used?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The more specific you are, the better the output will be.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lets practice!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JbjA5QNX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y7vd9bsrmj8btvtoa378.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JbjA5QNX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y7vd9bsrmj8btvtoa378.png" alt="ChatGPT prompt without code &amp;quot;write me a script using the following React code and create a green &amp;quot;Read More&amp;quot; button using React and Tailwind CSS that is completely 508 compliant and accessible visually and to screen-readers. import React from 'react'&amp;quot;" width="800" height="84"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the example above, I asked ChatGPT to write the code for a green “Read More” button and provided it the language, color, framework, and the type of accessibility I’m looking for. If you want your components or code written in a specific way, you can even give it some starter code to work with like below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S7YzsGWb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rd3vkuutudc926ew67vh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S7YzsGWb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rd3vkuutudc926ew67vh.png" alt="ChatGPT prompt using react starter code &amp;quot;write me a script using the following React code and create a green &amp;quot;Read More&amp;quot; button using React and Tailwind CSS that is completely 508 compliant and accessible visually and to screen-readers. import React from 'react'&amp;quot;" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I suggest going this route so you're still writing your own code as things might get more complex.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here's what ChatGPT came up with:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; 
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"button"&lt;/span&gt;
        &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"bg-green-500 hover:bg-green-700 text-white font-bold py-2 px-4 rounded-full focus:outline-none focus:border-green-800 focus:shadow-outline"&lt;/span&gt;
        &lt;span class="na"&gt;aria-label&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Read More"&lt;/span&gt;
        &lt;span class="na"&gt;tabIndex&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        Read More
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see below, it even goes and explains what each piece of code it added means, and how it relates to accessibility. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--15gHM08x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwuabhruooep4cxzfgt5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--15gHM08x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwuabhruooep4cxzfgt5.png" alt="Image description" width="800" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Don't forget...
&lt;/h2&gt;

&lt;p&gt;While this is a great start and a great place to learn, as always it's important to do your own accessibility testing with many different tools (see links below) to ensure that it's fully accessible.&lt;/p&gt;

&lt;p&gt;Take what ChatGPT says as advice and make sure to double-check how things get implemented. &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Always always always *&lt;/em&gt; proofread! Check that the React code is written properly and the Tailwind CSS properties make sense. Remember, ChatGPT is a tool to learn from and not a tool to use as a crutch! &lt;/p&gt;

&lt;p&gt;I hope this helps you both learn how to use a new technology, as well as solve that accessibility puzzle a little easier!&lt;/p&gt;

&lt;p&gt;If you want to learn more about accessibility(a11y), or Tailwind CSS and A11y, check out my blog post about that &lt;a href="https://dev.to/devsatasurion/is-tailwind-css-accessible-52dc"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Helpful links&lt;/strong&gt; &lt;br&gt;
Free A11y tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=&amp;amp;cad=rja&amp;amp;uact=8&amp;amp;ved=2ahUKEwj7uqDNm_D6AhUiEFkFHfvrB9QQFnoECBYQAQ&amp;amp;url=https%3A%2F%2Fwww.nvaccess.org%2Fdownload%2F&amp;amp;usg=AOvVaw3AAc5nrFrg0lylpULGjjxr"&gt;NVDA Screen Reader
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ssa.gov/accessibility/andi/help/install.html"&gt;ANDI Accessibility Testing Tool
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wave.webaim.org/extension/"&gt;WAVE Browser Extension
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A11y Info:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/"&gt;WCAG Standard Guidelines
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.a11yproject.com/"&gt;A11y Project
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>a11y</category>
      <category>chatgpt</category>
      <category>development</category>
      <category>ai</category>
    </item>
    <item>
      <title>Imposter Syndrome as a Developer (a podcast)</title>
      <dc:creator>Ashley Smith</dc:creator>
      <pubDate>Thu, 01 Dec 2022 17:21:25 +0000</pubDate>
      <link>https://forem.com/devsatasurion/imposter-syndrome-as-a-developer-a-podcast-4iik</link>
      <guid>https://forem.com/devsatasurion/imposter-syndrome-as-a-developer-a-podcast-4iik</guid>
      <description>&lt;p&gt;As a developer have you ever felt like you aren't good enough even though you have been successful, or maybe you feel like you need to work harder to keep up, or maybe you feel like you just don't belong?  Well, you're not alone! Learn what imposter syndrome is all about - even the &lt;em&gt;good&lt;/em&gt; parts! (yes I said there are good parts). Join Ashley in her first podcast as she talks about what she has learned. You'll also hear from Software Engineer Marina and her experiences with imposter syndrome.  &lt;/p&gt;

&lt;p&gt;Let me know in the comments what your thoughts are and if you have ever had similar experiences!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="100%" height="166" src="https://w.soundcloud.com/player/?url=https://soundcloud.com/ashley-smith-739813601/imposter-syndrome-as-a-developer&amp;amp;auto_play=false&amp;amp;color=%23000000&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mitsloan.mit.edu/faculty/directory/basima-tewfik"&gt;Information on Basima Tewfik&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.codingdojo.com/blog/programmer-imposter-syndrome"&gt;Helpful tips to combat imposter syndrome as a developer&lt;/a&gt;&lt;/p&gt;

</description>
      <category>impostersyndrome</category>
      <category>developer</category>
      <category>softwaredevelopment</category>
      <category>programming</category>
    </item>
    <item>
      <title>Is Tailwind CSS Accessible?</title>
      <dc:creator>Ashley Smith</dc:creator>
      <pubDate>Thu, 27 Oct 2022 15:00:29 +0000</pubDate>
      <link>https://forem.com/devsatasurion/is-tailwind-css-accessible-52dc</link>
      <guid>https://forem.com/devsatasurion/is-tailwind-css-accessible-52dc</guid>
      <description>&lt;p&gt;So, you want to use Tailwind CSS as the framework for your application - but is it Accessible?  A11y (accessibility) is an essential way to connect &lt;em&gt;ALL&lt;/em&gt; users to your site. Both people with and without disabilities can benefit from A11y.  It will also widen the net of users. Not to mention a fully accessible site will help improve SEO as well.&lt;/p&gt;

&lt;p&gt;If you are used to frameworks like Bootstrap, Foundation or Material Design with built in components and A11y elements, you might assume Tailwind is similar. At first glance in the documentation, it can very easily seem that way but Tailwind is much more flexible!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Tailwind CSS?
&lt;/h2&gt;

&lt;p&gt;Tailwind is a utility-first framework that uses a pre-defined design system using classes.  You can easily create custom components right in your HTML. &lt;/p&gt;

&lt;p&gt;Some benefits are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use less custom CSS overall.&lt;/li&gt;
&lt;li&gt;Making any changes to styles is much safer across large applications.
&lt;/li&gt;
&lt;li&gt;More freedom with how your site looks compared to other frameworks that have pre styled components. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this flexibility there are some drawbacks when thinking of A11y. One of the key things to note is that Tailwind is not fully accessible in the same way these other frameworks are.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lets talk about what Tailwind has to offer
&lt;/h2&gt;

&lt;p&gt;Two A11y classes Tailwind provides for us are &lt;code&gt;‘sr-only’&lt;/code&gt; and &lt;code&gt;‘not-sr-only’&lt;/code&gt;. These classes tell the screen reader to either read the element and visually ignore it (&lt;code&gt;‘sr-only’&lt;/code&gt;) or show the element both visually and to the screen reader (&lt;code&gt;‘not-sr-only’&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;code&gt;‘sr-only’&lt;/code&gt; can be added as a class to hide the element visually but still get read by a screen reader.  This is really helpful in situations where you need to give instructions to people who cannot access the site visually. &lt;/p&gt;

&lt;p&gt;For example, if you have a design with a search bar that has no label or directions in order to make it accessible to a screen reader, you will want to add a hidden label that uses the class&lt;code&gt;‘sr-only’&lt;/code&gt; to clue the user in on what it’s for.  &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;

&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"search"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"search"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"search"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sr-only"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/label&amp;gt;&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;code&gt;‘not-sr-only’&lt;/code&gt; will un-hide the element to the user.&lt;/p&gt;

&lt;p&gt;Another example where you can use these is on a “Skip to content” or “Skip to Main” button that only visually shows when tabbed into it and otherwise visually hidden. The class &lt;code&gt;‘not-sr-only’&lt;/code&gt; needs to be added once tabbed into the element to make it visually seen.  An easy way to do this is conditionally to a different state which Tailwind lets you do. It might look something like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;

&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#main"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sr-only focus:not-sr-only"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Skip to Main Content&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  New Tailwind CSS A11y additions
&lt;/h2&gt;

&lt;p&gt;As of &lt;a href="https://github.com/tailwindlabs/tailwindcss/discussions/9574#top" rel="noopener noreferrer"&gt;Tailwind CSS v3.2 Beta 2&lt;/a&gt; there are new variants for aria-* attributes.  These can be used to conditionally style things based on if the aria attribute state is true. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wait - what are ARIA Attributes?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label" rel="noopener noreferrer"&gt;Accessible Rich Internet Applications (ARIA)&lt;/a&gt; is a set of roles and attributes to make websites more accessible to people with disabilities. ARIA attributes can bridge the gap some native HTML elements may lack. &lt;/p&gt;

&lt;p&gt;The addition of these variants for aria-* attributes is a huge improvement and a big step forward to make Tailwind accessible. &lt;/p&gt;

&lt;p&gt;In the example here, &lt;code&gt;btn2&lt;/code&gt; is using &lt;code&gt;aria-pressed&lt;/code&gt;.  This lets the user know that there is an element, a button, that has not been pressed but has the opportunity to be pressed.  We are using the variant &lt;code&gt;aria-pressed:ring-2&lt;/code&gt;. This means that when the button is pressed it will add the Tailwind CSS class &lt;code&gt;ring-2&lt;/code&gt;. This will add a border around the button.  Without using this Tailwind variant like in &lt;code&gt;btn1&lt;/code&gt;, you might have to do something with an event listener and add the class using JavaScript.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;

&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"btn1"&lt;/span&gt; &lt;span class="na"&gt;aria-pressed=&lt;/span&gt;&lt;span class="s"&gt;"false"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/button&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"btn2"&lt;/span&gt; &lt;span class="na"&gt;aria-pressed=&lt;/span&gt;&lt;span class="s"&gt;"false"&lt;/span&gt; &lt;span class="na"&gt;aria-pressed:ring-2&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/button&amp;gt;&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg0e43bpqg6elo6vr7b8q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg0e43bpqg6elo6vr7b8q.png" alt="button with blue border"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can even create custom aria variants yourself within the &lt;code&gt;tailwind.config.js&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/tailwindlabs/tailwindcss/discussions/9574#top" rel="noopener noreferrer"&gt;Announcements&lt;/a&gt; for the complete list of new ARIA additions Tailwind CSS will offer.&lt;/p&gt;

&lt;h2&gt;
  
  
  So whats missing from Tailwind?
&lt;/h2&gt;

&lt;p&gt;Other frameworks you may have used in the past might contain designed components that rely on event listeners —such as modal dialogs, dropdown menus etc. to work for touch, mouse, and keyboard users out of the box. Since Tailwind CSS is so customizable, as a developer you need make sure you are adding the necessary things to your components with the provided tools Tailwind gives you, or on your own with JavaScript.&lt;/p&gt;

&lt;p&gt;While these new additions really take care of a lot, Tailwind CSS still takes manual work to make your website fully accessible. &lt;/p&gt;

&lt;p&gt;It's important to do the work as a developer to really understand how someone with a disability may use your site. Test out your site using a screen reader, or try browsing a site without the mouse. Continue to educate yourself on the latest &lt;a href="https://www.w3.org/WAI/fundamentals/accessibility-intro/" rel="noopener noreferrer"&gt;A11y rules&lt;/a&gt;.  A11y can sometimes be a puzzle to figure out but hopefully the tips here can jump start the process for you when using Tailwind!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Free A11y tools:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=&amp;amp;cad=rja&amp;amp;uact=8&amp;amp;ved=2ahUKEwj7uqDNm_D6AhUiEFkFHfvrB9QQFnoECBYQAQ&amp;amp;url=https%3A%2F%2Fwww.nvaccess.org%2Fdownload%2F&amp;amp;usg=AOvVaw3AAc5nrFrg0lylpULGjjxr" rel="noopener noreferrer"&gt;NVDA Screen Reader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ssa.gov/accessibility/andi/help/install.html" rel="noopener noreferrer"&gt;ANDI Accessibility Testing Tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wave.webaim.org/extension/" rel="noopener noreferrer"&gt;WAVE Browser Extension&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;A11y Info:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/" rel="noopener noreferrer"&gt;WCAG Standard Guidelines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.a11yproject.com/" rel="noopener noreferrer"&gt;A11y Project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tailwind CSS:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/devsatasurion/is-tailwind-css-accessible-5ag4-temp-slug-5134197?preview=7198980e682428c21465539dab3c776613344e0a5851f91efbceb6b63abb4d49ad5f6c9e85efdc32c00652326e41e6d733b286d1654b7e91b6bc5b5d#:~:text=Check%20out%20the-,Announcements,-for%20the%20complete"&gt;Tailwind Announcements&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://v1.tailwindcss.com/docs/screen-readers" rel="noopener noreferrer"&gt;Tailwind Screen Readers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>tailwindcss</category>
      <category>a11y</category>
      <category>css</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
