# accessible

Published articles for accessible.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Designing Claude for ears, not eyes: An accessibility skill for blind and low-vision users

DevFeed: [Designing Claude for ears, not eyes: An accessibility skill for blind and low-vision users](<https://devfeed.tech/articles/designing-claude-for-ears-not-eyes-an-accessibility-skill-for-blind-and-low-vision-users-38847.md>)

Original publisher: [Read original article](<https://building.nubank.com/designing-claude-for-ears-not-eyes-an-accessibility-skill-for-blind-and-low-vision-users/>)

Author: Nubank Editorial

Published: 2026-09-16T14:09:16Z

Content type: article

Language: en

Sources: [Nubank](<https://devfeed.tech/sources/nubank.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>), [screen](<https://devfeed.tech/topics/screen.md>), [Users](<https://devfeed.tech/topics/users.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [claude](<https://devfeed.tech/tags/claude.md>), [culture-values](<https://devfeed.tech/tags/culture-values.md>), [data-science-machine-learning](<https://devfeed.tech/tags/data-science-machine-learning.md>), [development-environment](<https://devfeed.tech/tags/development-environment.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [inclusive](<https://devfeed.tech/tags/inclusive.md>), [life-at-nu](<https://devfeed.tech/tags/life-at-nu.md>), [people-with-disabilities](<https://devfeed.tech/tags/people-with-disabilities.md>), [text](<https://devfeed.tech/tags/text.md>), [users](<https://devfeed.tech/tags/users.md>), [vision](<https://devfeed.tech/tags/vision.md>)

### AI overview

Nubank describes BLIND-CLAUDE.md, an instruction set that adapts Claude responses for people who primarily use screen readers or read-aloud functionality. The approach treats auditory comprehension as an engineering constraint and changes behavioral instructions without modifying Claude or adding a native accessibility feature.

### Source excerpt

How a cognitively diverse IT team at Nubank, they coded screen reader-friendly rules into Claude's instructions, treating auditory comprehension as an engineering constraint The post Designing Claude for ears, not eyes: An accessibility skill for blind and low-vision users appeared first on Building Nubank.

## Tailwind's rem-Based Breakpoints and Their Accessibility Tradeoffs

DevFeed: [Tailwind's rem-Based Breakpoints and Their Accessibility Tradeoffs](<https://devfeed.tech/articles/can-we-make-default-tailwind-a-more-accessible-choice-33293.md>)

Original publisher: [Read original article](<https://freek.dev/3179-can-we-make-default-tailwind-a-more-accessible-choice>)

Author: Freek Van der Herten (freek@spatie.be)

Published: 2026-08-14T10:30:33Z

Content type: article

Language: en

Sources: [freek.dev - all blogposts](<https://devfeed.tech/sources/freek-dev-all-blogposts.md>)

Topics: [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [browser](<https://devfeed.tech/tags/browser.md>), [css](<https://devfeed.tech/tags/css.md>), [responsive](<https://devfeed.tech/tags/responsive.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>)

### AI overview

This article examines Tailwind's default rem-based breakpoints and their accessibility tradeoffs. Browser font-size preferences can shift layouts, which may help some users, while px breakpoints remain a defensible choice.

### Source excerpt

A sharp look at Tailwind's default rem-based breakpoints, and the accessibility tradeoff they make. It explains how browser font-size preferences can shift layouts, why that can help some users, and why px breakpoints are still a defensible choice. Read more

## More Accessible Focus Indicators with Compose

DevFeed: [More Accessible Focus Indicators with Compose](<https://devfeed.tech/articles/more-accessible-focus-indicators-with-compose-38521.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2026-04-30/more-accessible-focus-indicators-with-compose/>)

Author: Eevis Panula

Published: 2026-04-30T07:11:56.799000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Android](<https://devfeed.tech/topics/android.md>), [Web Content Accessibility Guidelines](<https://devfeed.tech/topics/web-content-accessibility-guidelines.md>), [keyboard](<https://devfeed.tech/topics/keyboard.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [focus](<https://devfeed.tech/tags/focus.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [web-content-accessibility-guidelines](<https://devfeed.tech/tags/web-content-accessibility-guidelines.md>)

### AI overview

A tutorial on creating more visible keyboard focus indicators in Jetpack Compose. It explains relevant WCAG Focus Appearance requirements, notes that Android's default ripple may be insufficiently visible, and introduces the Indication API for drawing custom indicators such as an underline on focused interactive components.

### Source excerpt

Last summer, I wrote a blog post about focus management with Compose. Ever since, I've had drafts of this post, but I didn't get to finalize it until now. The blog post is available in: It's All About (Accessibility) Focus And Compose. So, in this blog post, we're talking about focus indicators and how to make them more accessible with Compose. But let's first talk about focus indicators in general. Focus Indicators Focus indicators are, as the name suggests, indicators that show where keyboard focus currently is in the UI. They need to be visible so that keyboard and keyboard-emulating device users can navigate around the app effortlessly. An important thing to note is that the focus indicator I'm talking about here is not for the screen reader (e.g., TalkBack) focus. That is handled on the system level. Web Content Accessibility Guidelines (the standard behind accessibility legislation and used with apps as well, despite the name) has some requirements for accessible focus indicators. Per SC 2.4.13 Focus Appearance, the focus indicator needs to be either User agent's (Android system) default styles At least 2 pixels thick and has a contrast ratio of at least 3:1 between the same pixels of focused and unfocused states. Android's default focus indicator is the ripple, which isn't very visible. Technically, it would pass, but if you want to make the application accessible, you'll need to improve the visibility of the focus indicator. Let's next discuss one way to build more visible (and thus, more accessible) focus indicators with Compose. Building More Accessible Focus Indicators with Compose There are several ways of creating the focus indicators. You can, for example, add a border based on the focused state, as Appt.org suggests in their code snippets: Accessibility focus indicator in Jetpack Compose, but if you want anything more complex, you'll want to turn to Indication API. Indication API with a DrawModifierNode can be used to draw complex focus indicators. In

## How The New York Times Games Team Delivered Accessible, Cross-Platform Dark Mode

DevFeed: [How The New York Times Games Team Delivered Accessible, Cross-Platform Dark Mode](<https://devfeed.tech/articles/how-the-new-york-times-games-team-delivered-accessible-cross-platform-dark-mode-39153.md>)

Original publisher: [Read original article](<https://open.nytimes.com/implementing-dark-mode-in-the-games-app-be7241ddb7ba?source=rss----51e1d1745b32---4>)

Author: The NYT Open Team

Published: 2026-04-16T15:35:45Z

Content type: article

Language: en

Sources: [New York Times](<https://devfeed.tech/sources/new-york-times.md>)

Topics: [Dark Mode](<https://devfeed.tech/topics/dark-mode.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Design system](<https://devfeed.tech/topics/design-system.md>), [XML](<https://devfeed.tech/topics/xml.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [SwiftUI](<https://devfeed.tech/topics/swiftui.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>)

Tags: [accessible](<https://devfeed.tech/tags/accessible.md>), [android](<https://devfeed.tech/tags/android.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [dark-mode](<https://devfeed.tech/tags/dark-mode.md>), [design](<https://devfeed.tech/tags/design.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ios](<https://devfeed.tech/tags/ios.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [swiftui](<https://devfeed.tech/tags/swiftui.md>)

### AI overview

The New York Times Games team describes implementing accessible, brand-consistent dark mode across its mobile app. The work coordinated design and engineering across Android and iOS, including XML and Jetpack Compose screens, legacy and modern interfaces, shared assets, external libraries, and testing.

### Source excerpt

Bringing accessible, brand-consistent dark mode to life in The New York Times Games app through cross-platform design and engineering collaboration.Illustration by Allie Sullberg By Vanessa Johnson, Daniel Falokun, Michael Ingber and Oleksandr Zabiiako The Games Mobile App introduced dark mode back in October. This seamless implementation was a collaborative effort, requiring careful planning and management of design, cross-platform coordination, and engineering work across both legacy and modern user interface systems. The process to implement dark mode across the app included consideration on the visuals, colors, and icons that are mode specific to maintain legibility and brand consistency. The New York Times Games team is excited to have delivered this feature before the end of 2025, and thrilled to be able to roll out a feature that continues to make our app accessible for all. Development Work on Mobile On the development side, the mobile and web engineers synchronized assets which were colors, fonts, and images to ensure that hybrid screens showed the correct styles and colors. This was possible since our design system across mobile was constructed in a way that encouraged consistency and scalability across platforms. With clear and easy to follow designs supported by our internal design system, Android and iOS could ensure consistency on both platforms. Screens in dark mode From an Android perspective, it required separate approaches for XML (Extensive Markup Language) based screens which use an imperative, hierarchical approach and Jetpack Compose screens that use a more modern declarative approach. XML and Jetpack Compose are different ways the UI can be constructed. To ensure dark mode compatibility, all features were revisited to make sure they were adapted, especially the additions that were being worked on during the dark mode project. Another aspect of this development was updating external libraries that required making pull requests, creating a versi

## Web Accessibility Myths: Can a Font Choice Violate the ADA?

DevFeed: [Web Accessibility Myths: Can a Font Choice Violate the ADA?](<https://devfeed.tech/articles/web-accessibility-myths-can-a-font-choice-violate-the-ada-36132.md>)

Original publisher: [Read original article](<https://www.boia.org/blog/web-accessibility-myths-can-a-font-choice-violate-the-ada>)

Author: Alexa

Published: 2025-12-21T07:45:00Z

Content type: article

Language: en

Sources: [Blog-Main](<https://devfeed.tech/sources/blog-main.md>)

Topics: [Web Content Accessibility Guidelines](<https://devfeed.tech/topics/web-content-accessibility-guidelines.md>), [Web Accessibility (a11y)](<https://devfeed.tech/topics/web-accessibility.md>), [Font](<https://devfeed.tech/topics/font.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [web design](<https://devfeed.tech/topics/web-design.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessibility-guidelines](<https://devfeed.tech/tags/accessibility-guidelines.md>), [accessibility-requirements](<https://devfeed.tech/tags/accessibility-requirements.md>), [accessibility-ux](<https://devfeed.tech/tags/accessibility-ux.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [color](<https://devfeed.tech/tags/color.md>), [fonts](<https://devfeed.tech/tags/fonts.md>), [legibility](<https://devfeed.tech/tags/legibility.md>), [sans-serif-fonts](<https://devfeed.tech/tags/sans-serif-fonts.md>), [serif-fonts](<https://devfeed.tech/tags/serif-fonts.md>), [wcag](<https://devfeed.tech/tags/wcag.md>), [web-accessibility](<https://devfeed.tech/tags/web-accessibility.md>), [web-content-accessibility-guidelines](<https://devfeed.tech/tags/web-content-accessibility-guidelines.md>)

### AI overview

This article explains that WCAG and the ADA do not require a specific font family. It distinguishes typeface choice from accessibility requirements involving text resizing, color contrast, and avoiding images of text.

### Source excerpt

On December 9th, 2025, U.S. Secretary of State Marc Rubio ordered diplomats to stop using Calibri -- a sans serif font -- and to switch back to Times New Roman. Normally, a change in typeface wouldn't make headlines, but Rubio's department took the unusual step of decrying Calibri as both unprofessional and wasteful.

## Why I'm starting a Newsletter About Inclusive Android Apps

DevFeed: [Why I'm starting a Newsletter About Inclusive Android Apps](<https://devfeed.tech/articles/why-i-m-starting-a-newsletter-about-inclusive-android-apps-38515.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2025-12-02/why-im-starting-a-newsletter-about-inclusive-android-apps/>)

Author: Eevis Panula

Published: 2025-12-02T13:52:53.691000Z

Content type: opinion

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [android](<https://devfeed.tech/tags/android.md>), [design](<https://devfeed.tech/tags/design.md>), [developers](<https://devfeed.tech/tags/developers.md>)

### AI overview

The author introduces Inclusive Android Apps, a monthly newsletter about making Android apps more inclusive. It will cover accessibility, LGBTQ+ inclusion, cultural and language differences, privacy and safety for marginalized users, and one inclusion problem each month, including its impact on users and the reasons developers may create it.

### Source excerpt

One thing I'm super excited about at the end of this year is a newsletter I'm launching: Inclusive Android Apps. It's a monthly newsletter about making Android apps more inclusive, and it covers accessibility, LGBTQ+ inclusion, support for different cultures and languages, privacy and safety for marginalized users, and more. In this post, I'm explaining why I'm starting it and what you can expect. Why Inclusive Android Apps? The short answer is that I'm starting the newsletter because I'd love to read it, and there's nothing like it around. The longer answer is that these topics matter to me. Accessibility is a big part of my life, as you might know if you've read my blog posts, seen me speak at events, or followed me on social media. I'm also queer, and many of the issues I'm discussing are from what I've either experienced or witnessed. However, I'm not an expert on everything, and this is also me learning in public. And I think that now, more than ever, it's important to raise these issues and talk about them. In this time when marginalized communities are under increasing political, social, and digital attack, building inclusive technology is an act of resistance. And you know, every accessible button, every inclusive form, every thoughtful design choice says: you belong here. This newsletter is about making that concrete. What to Expect from Inclusive Android Apps? Inclusive Android Apps will cover one inclusion problem each month. The structure of each issue is the following: The Problem The first section explains the problem the newsletter issue covers, giving examples of what happens and describing why it's a problem. Depending on the problem, it might be more about code or about a design pattern. Who the Problem Hurts Next, each issue has a list of user groups affected by the problem. For example, when buttons break at large text sizes, it affects people with low vision, elderly users, and anyone who has customized their text settings. Some of these might b

## Wear OS Accessibility Considerations

DevFeed: [Wear OS Accessibility Considerations](<https://devfeed.tech/articles/wear-os-accessibility-considerations-38511.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2025-09-06/wear-os-accessibility-considerations/>)

Author: Eevis Panula

Published: 2025-09-06T07:38:33.218000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Android](<https://devfeed.tech/topics/android.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [screen](<https://devfeed.tech/topics/screen.md>), [Font](<https://devfeed.tech/topics/font.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [screen](<https://devfeed.tech/tags/screen.md>)

### AI overview

A discussion of accessibility considerations for Wear OS apps, focusing on how the small form factor differs from phones and tablets. It explains why TalkBack remains a major focus and highlights built-in components, content descriptions, and list behavior.

### Source excerpt

Lately, I've been learning about Wear OS development. As I'm also an accessibility specialist, I've naturally also been looking into the accessibility aspects of Wear OS. The small form factor impacts many things typically associated with accessibility. Not everything can work, or is working, the same as with, for example, phones and tablets. It's been fascinating to dive into the topic and learn more about it. In this blog post, I'll give pointers on Wear OS accessibility and share some of the learnings I've had. For transparency, I must note that my perspective is very Pixel-y, as I have a Pixel Watch 3. Let's dive in! Screen Reader Seems to Be on the Main Stage Most of the available documentation about Wear OS accessibility focuses on making apps accessible for screen reader users. The Accessibility on Wear OS-page first mentions font size and rotary input (which we'll discuss later in this blog post), and then proceeds to optimizing apps for TalkBack (the built-in screen reader), which takes up most of the page. And I'm not surprised - that's the case with most of the accessibility documentation for any platform. And don't get me wrong, screen reader accessibility is important, but there's often this misconception that that's all accessibility is. However, it's not just screen readers - there are many other sides to it. In Wear OS's case, however, I think that it might even be warranted to keep the screen reader accessibility on the main stage of the accessibility documentation. The reason for that is that many other things work out of the box. I mean, of course, there are ways to make them not work, but unless you're misusing components, most of the things work. The "Optimize your app for Talkback" section in the forementioned documentation comes down to basics: Use built-in components, as they already have the semantics, accessibility actions, focus handling, etc. included. Add content descriptions to tiles and complications. Tip! If you're wondering what to w

## Why WCAG Conformance Doesn't Mean "Perfectly Accessible"

DevFeed: [Why WCAG Conformance Doesn't Mean "Perfectly Accessible"](<https://devfeed.tech/articles/why-wcag-conformance-doesn-t-mean-perfectly-accessible-36135.md>)

Original publisher: [Read original article](<https://www.boia.org/blog/why-wcag-conformance-doesnt-mean-perfectly-accessible>)

Author: Jordan

Published: 2025-07-23T12:45:00Z

Content type: article

Language: en

Sources: [Blog-Main](<https://devfeed.tech/sources/blog-main.md>)

Topics: [Web Content Accessibility Guidelines](<https://devfeed.tech/topics/web-content-accessibility-guidelines.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Web Accessibility (a11y)](<https://devfeed.tech/topics/web-accessibility.md>), [Web](<https://devfeed.tech/topics/web.md>), [alt text](<https://devfeed.tech/topics/alt-text.md>), [Users](<https://devfeed.tech/topics/users.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessibility-guidelines](<https://devfeed.tech/tags/accessibility-guidelines.md>), [accessibility-ux](<https://devfeed.tech/tags/accessibility-ux.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [alt-text](<https://devfeed.tech/tags/alt-text.md>), [cause](<https://devfeed.tech/tags/cause.md>), [content](<https://devfeed.tech/tags/content.md>), [lawsuit](<https://devfeed.tech/tags/lawsuit.md>), [markup](<https://devfeed.tech/tags/markup.md>), [speech](<https://devfeed.tech/tags/speech.md>), [tables](<https://devfeed.tech/tags/tables.md>), [wcag](<https://devfeed.tech/tags/wcag.md>), [web-accessibility](<https://devfeed.tech/tags/web-accessibility.md>), [web-content-accessibility-guidelines](<https://devfeed.tech/tags/web-content-accessibility-guidelines.md>)

### AI overview

The article explains that WCAG conformance, including Level AA, is a valuable goal but does not guarantee a perfectly accessible experience. Pass-or-fail criteria can be met while websites still create barriers through poor alt text, difficult captions, incomprehensible table presentation, or layout shifts caused by slow page speeds.

### Source excerpt

The Web Content Accessibility Guidelines (WCAG) are an excellent set of standards, and WCAG conformance is achievable -- regardless of the size of your website, the complexity of its features, or any other factors.

## 10 Tips to Make Your Blog Posts More Accessible

DevFeed: [10 Tips to Make Your Blog Posts More Accessible](<https://devfeed.tech/articles/10-tips-to-make-your-blog-posts-more-accessible-38509.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2025-07-18/10-tips-to-make-your-blog-posts-more-accessible/>)

Author: Eevis Panula

Published: 2025-07-18T11:44:00.644000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [alt text](<https://devfeed.tech/topics/alt-text.md>), [Code](<https://devfeed.tech/topics/code.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [alt-text](<https://devfeed.tech/tags/alt-text.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [code](<https://devfeed.tech/tags/code.md>), [tips](<https://devfeed.tech/tags/tips.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

This article shares accessibility tips for blog authors, emphasizing that technical content should support developers with disabilities. It recommends presenting code as text in code blocks instead of images and providing text alternatives for graphics.

### Source excerpt

Sometimes I encounter this weird idea that developers don't need accessibility at all. Some people seem to believe that our development tools and resources don't need to be accessible, because accessibility is just something to do with the end users of our services. If you're one of those people, you know, disabled software developers exist. You're reading text from one right now, and I know many developers with disabilities. Yes, even blind developers. I've been writing a blog since 2019, and as an accessibility specialist, I've tried to make my blog posts as accessible as possible. In this blog post, I decided to share some of the things I've learned over the years. So, without further ado, let's get started. Share Code as Text, not as Images If you're writing a technical blog post and sharing some code, always write it as text, never share it as an image. Why? There are multiple reasons. First of all, it's super annoying to copy the code from a blog post if it's an image. The reader would need to type it out, instead of just copying and pasting. At least for me, when I'm sharing code in a blog post, it's meant to be used, and the fastest way is to use copy and paste. Images of code are also an accessibility problem. With an image, there is no way to make the text bigger, change colors for better contrast, or modify the text row length. All of these are things people might need to make the web content more accessible for them. And then there's the text alternative part - if you're sharing an image of text, you should always include the text as text alternative (alt text) for the image. However, even if you include code, the way screen readers interact with alt texts makes it more challenging to use. E.g., navigating within the code is harder because screen readers read the text from the beginning, and it's not really possible to jump from one row to another. So, always put code into a code block as text. Most blogging platforms allow this, and if you have your own

## Making basicMarquee-Modifier More Accessible

DevFeed: [Making basicMarquee-Modifier More Accessible](<https://devfeed.tech/articles/making-basicmarquee-modifier-more-accessible-38502.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2025-02-20/making-basicmarquee-modifier-more-accessible/>)

Author: Eevis Panula

Published: 2025-02-20T10:38:55.771000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Android](<https://devfeed.tech/topics/android.md>), [marquee](<https://devfeed.tech/topics/marquee.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [android](<https://devfeed.tech/tags/android.md>), [animations](<https://devfeed.tech/tags/animations.md>), [code](<https://devfeed.tech/tags/code.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [marquee](<https://devfeed.tech/tags/marquee.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

This tutorial explains how to make Android's basicMarquee modifier respect the system "Remove animations" accessibility setting. It proposes reading the setting and exposing its value through composition locals to conditionally enable the marquee animation.

### Source excerpt

I have this "Remove animations"-setting turned on on my phone because different kinds of movement make me feel physically sick. When the setting is on, animations are usually removed from native Android apps. And when there are some animations, I notice them. I've started seeing more and more of some horizontally scrolling texts, and I have been wondering why. Then I came across this basicMarquee-modifier. And it doesn't respect the "Remove animations" accessibility setting. And that's bad - many users (me included) rely on that setting to not see animations. Marquee-styled animations are one of the worst triggers of my motion sickness symptoms. If you want to learn more about my symptoms and why animations can be super problematic for some, I've written two blog posts, one from Android and one from a web point of view: Android, Animations and Reduced Motion You Make My Head Spin - Reducing the Motion on Web But since bringing up solutions is often better received than bringing up problems, this blog post will demonstrate one idea on how to improve the situation for us who rely on that "Remove animations" setting. The main idea is to read the value of this setting and then use it to decide if the basicMarquee-modifier is used. In this blog post, I'm using composition locals to accomplish it. Remove Animations Setting Before we dive into the code, a couple of words about the "Remove animations" setting. It's a global setting, which you can find from the accessibility settings. In my Pixel phone, "Remove animations" is under the "Color and motion"-section. From a technical perspective, the setting changes the animator duration scale to 0, so, in other words, the animations end right after they start. This accessibility setting is not exposed via accessibility services the same way as, for example, screen reader availability, so we'll need to be a bit creative. The following section explains how we can read the value of this setting. Composition Local for Remove Animat

## Ten years of Overcast: A new foundation

DevFeed: [Ten years of Overcast: A new foundation](<https://devfeed.tech/articles/ten-years-of-overcast-a-new-foundation-38593.md>)

Original publisher: [Read original article](<https://marco.org/2024/07/16/overcast-rewrite>)

Author: Marco Arment

Published: 2024-07-16T12:57:40Z

Content type: article

Language: en

Sources: [Marco.org](<https://devfeed.tech/sources/marco-org.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Playback](<https://devfeed.tech/topics/playback.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>)

Tags: [accessible](<https://devfeed.tech/tags/accessible.md>), [app](<https://devfeed.tech/tags/app.md>), [apple](<https://devfeed.tech/tags/apple.md>), [faster](<https://devfeed.tech/tags/faster.md>), [launch](<https://devfeed.tech/tags/launch.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [playback](<https://devfeed.tech/tags/playback.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [redesign](<https://devfeed.tech/tags/redesign.md>), [rewrite](<https://devfeed.tech/tags/rewrite.md>), [shortcuts](<https://devfeed.tech/tags/shortcuts.md>), [storage](<https://devfeed.tech/tags/storage.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [sync](<https://devfeed.tech/tags/sync.md>)

### AI overview

Overcast has launched a substantial rewrite and redesign of most of its iOS app for its tenth anniversary. The update improves responsiveness, reliability, accessibility, navigation, and controls, while retaining most features and the existing audio engine. Streaming has been replaced by downloading episodes before playback, and several missing features are planned to return.

### Source excerpt

Today, on the tenth anniversary of Overcast 1.0, I'm happy to launch a complete rewrite and redesign of most of the iOS app, built to carry Overcast into the next decade -- and hopefully beyond. Like podcasts better than blog posts? Listen to ATP #596 for more! What's new Much faster, more responsive, more reliable, and more accessible. Modern design, optimized for easily-reached controls on today's phone sizes. Improvements throughout, such as undoing large seeks, new playlist-priority options, easier navigation, and more. What's not Most features. Overcast is still Overcast! The audio engine. It's the best part of Overcast, and still leads the industry in sound quality, silence skipping, and volume normalization. (More soon!) The business. I'm still a one-person operation, with no funding or external ownership, serving only my customers. My principles. I always want to make the best podcast app, and I'll never disrespect your time, attention, or privacy. What's gone Streaming. Most big podcasts now use dynamic ad insertion, which causes bugs and problems for streaming playback.1 Downloading episodes completely before they begin playback is much more reliable. Tapping a non-downloaded episode will now open the playback screen, download it, then start playback. It works similarly to the way streaming did before, but playback begins after the download completes, not after a portion of it is buffered. On today's fast networks, this usually only takes a few extra seconds. And in the near future, I'll be adding smarter options and more control over selective downloading of episodes to further improve the experience for people who don't automatically download every episode. What's next The last few missing features from the old app, such as Shortcuts support, storage management, and OPML. These are absent now, but will return soon. More options for downloading and deleting episodes. Upgrading the Apple Watch app to the new, faster sync engine. (The Watch app is currently

## More Accessible Graphs with Jetpack Compose Part 4: On-Screen Control Buttons

DevFeed: [More Accessible Graphs with Jetpack Compose Part 4: On-Screen Control Buttons](<https://devfeed.tech/articles/more-accessible-graphs-with-jetpack-compose-part-4-on-screen-control-buttons-38467.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2023-12-09/more-accessible-graphs-with-jetpack-compose-part-4-on-screen-control-buttons/>)

Author: Eevis Panula

Published: 2025-06-11T04:27:25.251000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Users](<https://devfeed.tech/topics/users.md>), [screen](<https://devfeed.tech/topics/screen.md>)

Tags: [accessible](<https://devfeed.tech/tags/accessible.md>), [component](<https://devfeed.tech/tags/component.md>), [gestures](<https://devfeed.tech/tags/gestures.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [interaction](<https://devfeed.tech/tags/interaction.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial is the fourth article in a series about making graphs built with Jetpack Compose more accessible. It explains why continuous pointer gestures and keyboard interaction may not work for all users, then adds visible on-screen buttons for moving forward and backward through the graph.

### Source excerpt

This blog post is the fourth one in my series on more accessible graphs with Jetpack Compose. You can find the previous three from the following links: More Accessible Graphs with Jetpack Compose Part 1: Adding Content Description More Accessible Graphs with Jetpack Compose Part 2: Adding Keyboard Interaction More Accessible Graphs with Jetpack Compose Part 3: Differentiating without Color Continuous (or path-based) pointer input, like drag-gesture, might be problematic for some users. For example, if a user has tremors in their hands, the gesture is not always continuous, and if the app relies on this kind of gesture to work, it may be unusable for these users. Now, if you have followed this blog post series, you might wonder - hey, we added keyboard interaction; isn't that enough? No, it's not - it would require a physical keyboard. Many users don't use a physical keyboard, even if they could benefit from it. So, in this blog post, we'll add on-screen controls to the graph. The best part is that this solution also solves the issues with a switch device I mentioned at the end of the blog post about keyboard interaction! Head to the paragraph about Switch Access for more in-depth explanations. Adding Buttons So, one way to solve this problem with path-based gestures is to add visible buttons as an alternative way of navigating inside the graph. In the case of this graph, we want to add two buttons: One for going forward and another for going backward. This is what the UI will look like once we add the controls: We add a new component, called ControlButtons that wraps these buttons: @Composable fun ControlButtons( highlightedX: Float?, lastIndex: Int, setFocus: (Int) -> Unit ) { ... } It takes three parameters: highlightedX, which is the currently highlighted year on the x-axis, lastIndex, which is the last year's index, and a function called setFocus, which takes in an integer - the index where the focus should go next - and returns Unit. This is what it looks like

## More Accessible Graphs with Jetpack Compose Part 3: Differentiating without Color

DevFeed: [More Accessible Graphs with Jetpack Compose Part 3: Differentiating without Color](<https://devfeed.tech/articles/more-accessible-graphs-with-jetpack-compose-part-3-differentiating-without-color-38462.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2023-08-16/more-accessible-graphs-with-jetpack-compose-part-3-differentiating-without/>)

Author: Eevis Panula

Published: 2025-06-11T04:27:29.325000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Graphs](<https://devfeed.tech/topics/graphs.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [color](<https://devfeed.tech/topics/color.md>), [Code](<https://devfeed.tech/topics/code.md>), [function](<https://devfeed.tech/topics/function.md>), [properties](<https://devfeed.tech/topics/properties.md>)

Tags: [accessible](<https://devfeed.tech/tags/accessible.md>), [code](<https://devfeed.tech/tags/code.md>), [color](<https://devfeed.tech/tags/color.md>), [function](<https://devfeed.tech/tags/function.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [properties](<https://devfeed.tech/tags/properties.md>)

### AI overview

The third article in a series on accessible graphs with Jetpack Compose explains why data should not be differentiated by color alone. It demonstrates using different point shapes and line patterns to improve distinguishability for people with color-vision differences and across screens with varying color reproduction.

### Source excerpt

This blog post is the third one in my series on more accessible graphs with Jetpack Compose. You can find the previous two from the following links: More Accessible Graphs with Jetpack Compose Part 1: Adding Content Description More Accessible Graphs with Jetpack Compose Part 2: Adding Keyboard Interaction The third topic we will cover is differentiating data by other means than color. Color is a convenient way to distinguish data, but what if you can't see color? Or what if you see colors differently? For example, the example project we've been developing during the blog post series would look like this for someone who can't see color at all: And someone with red-green color blindness: Another aspect of why not use color alone is that phone screens display color differently. A noticeable difference on a high-end external screen for a designer might be almost the same shades for a lower-end phone, making usage impossible. There are better ideas than just using color to differentiate data. In the next section, let's explore some of these other ways. Options for Color When talking about graphs, there are generally two ways to improve the distinguishability of data: Shapes and patterns. For example, if a bar chart is initially differentiated by color, adding patterns for different colors could differentiate those bars. For a line chart, both these options are valid. Let's explore both and differentiate the data by adding different shapes for points and some patterns for the line. This solution is not the most beautiful because I'm mixing these two options, but it's there to demonstrate, not to be a final design. The Code In the situation we're starting with, the function we're using to draw the data points looks like this: drawPoints( points = pixelPoints.map { Offset(it.x + 20f, it.y) }, pointMode = PointMode.Points, color = color, strokeWidth = 8.dp.toPx(), cap = StrokeCap.Round, ) It takes the points and point mode from the parameters, and other than that, everythin

## More Accessible Graphs with Jetpack Compose Part 2: Adding Keyboard Interaction

DevFeed: [More Accessible Graphs with Jetpack Compose Part 2: Adding Keyboard Interaction](<https://devfeed.tech/articles/more-accessible-graphs-with-jetpack-compose-part-2-adding-keyboard-interaction-38460.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2023-07-31/more-accessible-graphs-with-jetpack-compose-part-2-adding-keyboard-interaction/>)

Author: Eevis Panula

Published: 2025-06-11T04:27:33.850000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [keyboard](<https://devfeed.tech/topics/keyboard.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [graph](<https://devfeed.tech/tags/graph.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>)

### AI overview

This tutorial explains how to improve keyboard access for graphs built with Jetpack Compose. It describes the limitation that content descriptions are unavailable to keyboard-only users and introduces changing the highlighted x-axis position so users can inspect graph values. The author also notes that switch access is not covered because it did not work and required further research.

### Source excerpt

Welcome to the second episode of "More Accessible Graphs with Jetpack Compose" - in this blog post, we'll continue from where we left off in the first one. We will look at improving the (physical) keyboard access for graphs in Jetpack Compose. Link to the first part: More Accessible Graphs with Jetpack Compose Part 1: Adding Content Description At the end of the blog post, I mentioned that the second part would be about keyboard and switch access. After testing my code for the blog post, I realized that the switch access part didn't work. After some deep-diving into documentation, I admitted I wouldn't add it to this post as it would require a lot of research. So there likely will be at least four parts in this "More Accessible Graphs with Jetpack Compose"-blog post series. In the first blog post, we added a Higlighter-component, an overlay on top of the line graph I had built. Then we made it focusable and added a content description for accessibility services. After these changes, a keyboard user can already focus on the different parts of the graph, but there's one problem: The graph legend is not visible. And you may now wonder if it is really a problem - we added the content description, right? The content description is unavailable if you only use a keyboard. If a person, who can see and uses a hardware device for navigation, navigates with the graph in the current state, they probably get frustrated because this is what they would get: They can see that the focus changes but can't see the individual values. If I encountered something like this, I would think there is a bug in the app. Adding Keyboard Interaction Users can already focus on each section, so we no longer need to worry about that. But we'll need a way to change the currently focused position on the x-axis - like if a user was moving their finger on the graph. The highlightedX-parameter is the one that controls the currently highlighted position on the x-axis. We'll need to add a way to change it

## More Accessible Graphs with Jetpack Compose Part 1: Adding Content Description

DevFeed: [More Accessible Graphs with Jetpack Compose Part 1: Adding Content Description](<https://devfeed.tech/articles/more-accessible-graphs-with-jetpack-compose-part-1-adding-content-description-38459.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2023-07-24/more-accessible-graphs-with-jetpack-compose-part-1-adding-content/>)

Author: Eevis Panula

Published: 2025-06-11T04:27:54.252000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [compose](<https://devfeed.tech/tags/compose.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [mobile](<https://devfeed.tech/tags/mobile.md>)

### AI overview

This first article in a four-part series explores making data visualizations more accessible in mobile apps built with Jetpack Compose. It focuses on adding content descriptions and information for screen reader users, while the series also covers keyboard interaction and non-color-based differentiation.

### Source excerpt

Data visualizations rely on the visual representation of data. And that data is usually portrayed by some combination of colors. On mobile apps, they also often include different interactions that rely on touch. But what if your user can't see? Or if they're colorblind, and the combination of colors is not visible to them? Or if they use a switch device or hardware keyboard for navigation? From my experience, data visualizations of apps are often inaccessible for these groups of users, for instance. I wanted to experiment with how much changes and code would be needed to make a line chart more accessible. To my surprise, the amount of code wasn't that much. Of course, experimenting took some time, but after solving these problems, I now have an example project I can utilize in other projects. And because I love to share what I've learned, I'm writing this series of blog posts to help you to build more accessible graphs with Jetpack Compose. We'll look at three different aspects: Adding information for non-visual access users (so, e.g., a TalkBack user) Adding keyboard interaction in addition to touch-based interaction Differentiating data by other means than just color This first blog post in the series is about adding information for non-visual access users, e.g., screen reader users. The following two blog posts will cover adding keyboard interaction and differentiating data with other means than just color. There might be additional posts about voice access and increasing touch target size in the future. My goal is not to provide a final solution but ideas you can take and improve to use in your codebase. Of course, graphs can be more complex, and these relatively simple solutions might not work for everything, but I hope they'll give you pointers on improving your graph's accessibility. Let's first talk about the example project I prepared for this experiment. The Initial Project Code So, before starting any explorations on making things more accessible, I neede

## Android Developers and Accessibility - Challenges and Proposed Solutions

DevFeed: [Android Developers and Accessibility - Challenges and Proposed Solutions](<https://devfeed.tech/articles/android-developers-and-accessibility-challenges-and-proposed-solutions-38458.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2023-07-17/android-developers-and-accessibility-challenges-and-proposed-solutions/>)

Author: Eevis Panula

Published: 2023-07-17T04:21:11.887000Z

Content type: article

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Android](<https://devfeed.tech/topics/android.md>), [Development](<https://devfeed.tech/topics/development.md>), [Requirements](<https://devfeed.tech/topics/requirements.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Users](<https://devfeed.tech/topics/users.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessibility-requirements](<https://devfeed.tech/tags/accessibility-requirements.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [requirements](<https://devfeed.tech/tags/requirements.md>), [users](<https://devfeed.tech/tags/users.md>)

### AI overview

This blog post examines accessibility challenges faced by Android developers, including limited accessibility knowledge, difficulty understanding disabled users' needs, and companies treating accessibility as an extra cost or postponing it until after development. It also introduces proposed solutions based on research and the author's master's thesis.

### Source excerpt

My current Big Project is my master's thesis - I'm writing about Android accessibility, and my goal is to create a list of checks Android developers could use to create more accessible apps. I'm super excited about the theme, and once it's ready, I will definitely share the results on my blog. One of the main theoretical themes in the thesis is how Android developers implement accessibility and what challenges prevent them from doing so. Research also provides some solutions to these challenges. In this blog post, we'll first look through some of the challenges Android developers face (although these are common for other types of development as well) and then discuss proposed solutions. The Challenges Let's first look at the challenges developers face. I've listed all the resources used in the Resources section. The list has three studies about Android developers, their accessibility knowledge, and their willingness and readiness to develop accessible apps. Not Knowing About Accessibility and Lack of Awareness The first problem I want to mention is that Android developers often lack accessibility knowledge. This lack of familiarity varies - for some, it's total unawareness, but for most, it shows as problems understanding the exact needs of disabled users. 1 This finding is something I can confirm from my own experiences. Often Android developers are familiar with the fact that accessibility should be part of an app. Still, the exact implementation and why they must do something are unclear. Companies Ignoring Accessibility Requirements Another aspect of the lack of awareness is that companies ignore the accessibility requirements. Patel et al. 2 found out that the leadership in companies often prioritized other things over accessibility when a deadline was approaching. They usually see accessibility as an extra cost rather than an opportunity. This attitude is also visible in the internal policies, so for developers, it's often hard to find time to fix accessibilit

## How to make your text more accessible

DevFeed: [How to make your text more accessible](<https://devfeed.tech/articles/how-to-make-your-text-more-accessible-29266.md>)

Original publisher: [Read original article](<https://material.io/blog/how-to-make-text-more-accessible>)

Published: 2023-05-12T13:00:00Z

Content type: article

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Google](<https://devfeed.tech/topics/google.md>)

Tags: [accessible](<https://devfeed.tech/tags/accessible.md>), [articles](<https://devfeed.tech/tags/articles.md>), [easier](<https://devfeed.tech/tags/easier.md>), [fonts](<https://devfeed.tech/tags/fonts.md>), [google](<https://devfeed.tech/tags/google.md>), [how-to](<https://devfeed.tech/tags/how-to.md>)

### AI overview

This Google Fonts article presents guidance for making text more accessible and easier to read.

### Source excerpt

Find all of Google Fonts' typefaces, articles, and resources to make your text easier to read

## Aria-Label is Not Always the Answer

DevFeed: [Aria-Label is Not Always the Answer](<https://devfeed.tech/articles/aria-label-is-not-always-the-answer-38440.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2021-11-29/aria-label-is-not-always-the-answer/>)

Author: Eevis Panula

Published: 2023-01-03T08:57:28.550000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [aria](<https://devfeed.tech/topics/aria.md>), [HTML](<https://devfeed.tech/topics/html.md>), [html elements](<https://devfeed.tech/topics/html-elements.md>), [W3C](<https://devfeed.tech/topics/w3c.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [aria](<https://devfeed.tech/tags/aria.md>), [details](<https://devfeed.tech/tags/details.md>), [html](<https://devfeed.tech/tags/html.md>), [html-elements](<https://devfeed.tech/tags/html-elements.md>), [w3c](<https://devfeed.tech/tags/w3c.md>)

### AI overview

This tutorial explains that aria-label is not universally appropriate or consistently supported across HTML elements. It describes when to use aria-label, when aria-labelledby is preferable, and the element types where aria-label works consistently with assistive technologies.

### Source excerpt

Okay, you've learned about accessibility and that there is sometimes a need to make, for example, the link text more descriptive for screen reader users. You've learned about the aria-label-attribute, and its powers. It's the answer to everything! I'm afraid I have to say that it is not. It doesn't work with all HTML elements. In this blog post, I'll dig a bit deeper into the aria-label-attribute, and its usage and limitations, and options. What Is aria-label? So, let's first talk about the specification and where to use it. W3C Recommendation for Accessible Rich Internet Applications (WAI-ARIA)-document defines aria-label as "a string value that labels the current element." You can use it to provide a recognizable name of the object if there is no visible text on the screen that could be used as the label. If there was, aria-labelledby should be used. The most important thing, and the reason I'm writing this article, is that developers should use it only with the following elements: interactive elements (such as links, buttons, inputs et cetera) Elements that have a landmark role Elements that have an ARIA-widget role img or iframe-elements Source: Short note about aria-label, aria-labelledby and aria-describedby by Léonie Watson. aria-label on these elements works consistently with assistive technologies. The support is inconsistent if you use it with any other tag, such as div or span. More about that in Aria-label and non-supported elements. Let's look into each one of these elements a bit more. Interactive Elements Interactive elements are tags intended for user interaction. It means, for example, button, a (when href-attribute is present), input , details and others. The main idea is that users can interact with them. Elements with Landmark Role Elements can have landmark roles either implicitly or explicitly. Having an implicit role means that some of the HTML elements have roles set to them natively. The explicit role, on the other hand, is set with role-att

## My Advice to a Developer New to Accessibility

DevFeed: [My Advice to a Developer New to Accessibility](<https://devfeed.tech/articles/my-advice-to-a-developer-new-to-accessibility-38446.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2022-07-22/my-advice-to-a-developer-new-to-accessibility/>)

Author: Eevis Panula

Published: 2023-01-03T08:57:33.125000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [HTML](<https://devfeed.tech/topics/html.md>), [keyboard](<https://devfeed.tech/topics/keyboard.md>), [markup](<https://devfeed.tech/topics/markup.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [advice](<https://devfeed.tech/tags/advice.md>), [developer](<https://devfeed.tech/tags/developer.md>), [development](<https://devfeed.tech/tags/development.md>), [element](<https://devfeed.tech/tags/element.md>), [elements](<https://devfeed.tech/tags/elements.md>), [focus](<https://devfeed.tech/tags/focus.md>), [html](<https://devfeed.tech/tags/html.md>), [html-elements](<https://devfeed.tech/tags/html-elements.md>), [input](<https://devfeed.tech/tags/input.md>), [interaction](<https://devfeed.tech/tags/interaction.md>), [interactive](<https://devfeed.tech/tags/interactive.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [learning](<https://devfeed.tech/tags/learning.md>), [markup](<https://devfeed.tech/tags/markup.md>)

### AI overview

This beginner-oriented accessibility article recommends focusing on progress rather than perfection and introduces semantic HTML, keyboard navigation, and listening to people with disabilities. It explains that semantic elements communicate meaning to browsers and developers and support appropriate interaction, while a div styled as a button may work only for mouse users and may not be focusable or keyboard-accessible.

### Source excerpt

Learning about accessibility for the first time can feel overwhelming. You start reading, and at some point, it hits you: There is so much to learn! And if you're like me and feel that it's your responsibility to make the things you create accessible, that might even make you feel anxious. And yes, there is a lot to learn regarding accessibility. But you don't need to know everything at once. As Meryl Evans reminds us in her tweet (and a blog post the tweet links to), it's about progress over perfection: https://twitter.com/merylkevans/status/1547635550466674692 So, here are some things I wish I had known when I first started learning accessibility. Heck, I wish I had known these things when I started learning web development! I'll share semantic HTML, keyboard navigation, and listening to people with disabilities. Learn Semantic HTML and Use It So, first thing: Learn semantic HTML. But what does it mean? Semantic HTML, or semantic markup, describes its meaning to the browser and developer in a human- and machine-readable way. So, with semantic elements, a human will know what the HTML element is about, and the browser knows what it should render and how it should behave when a user interacts with it. Here's an example: <button onClick={...}>I'm an honest button</button> That button uses a semantic button-element. When it does so, the browser knows what it should do when the user either clicks or activates it with a keyboard or other input device. Here's an example of a non-semantic "button": <div className="button" onClick={...}> I look like a button </div> So, this "button" made out of div looks like a button and even has the onClick-handler. So, wouldn't a human recognize it as a button? Well, yes and no. It depends on the human. You see, this "button" works only for mouse users. As div is not an interactive element by nature, it doesn't handle interaction the same way as, for example, a button-element. When using a semantic button-element, that onClick-event pro

## Six Strategies for Making Data Visualizations Accessible, Scalable, and Helpful

DevFeed: [Six Strategies for Making Data Visualizations Accessible, Scalable, and Helpful](<https://devfeed.tech/articles/top-tips-for-data-accessibility-29242.md>)

Original publisher: [Read original article](<https://material.io/blog/data-visualization-accessibility>)

Published: 2022-11-08T13:00:00Z

Content type: tutorial

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Data visualization](<https://devfeed.tech/topics/data-visualization.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [data](<https://devfeed.tech/tags/data.md>), [data-visualization](<https://devfeed.tech/tags/data-visualization.md>), [making](<https://devfeed.tech/tags/making.md>), [strategies](<https://devfeed.tech/tags/strategies.md>), [tips](<https://devfeed.tech/tags/tips.md>), [visualization](<https://devfeed.tech/tags/visualization.md>)

### AI overview

The article presents six strategies for making data visualizations accessible, scalable, and helpful.

### Source excerpt

Six strategies for making your data visualization accessible, scalable, and helpful

## Accessibility of text over generic background color

DevFeed: [Accessibility of text over generic background color](<https://devfeed.tech/articles/accessibility-of-text-over-generic-background-color-38634.md>)

Original publisher: [Read original article](<https://krossovochkin.com/posts/2020_03_29_accessibility_of_text_over_generic_background_color/>)

Published: 2020-03-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Vasya Drobushkov](<https://devfeed.tech/sources/vasya-drobushkov.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Application Development](<https://devfeed.tech/topics/application-development.md>), [Android](<https://devfeed.tech/topics/android.md>), [color](<https://devfeed.tech/topics/color.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [android](<https://devfeed.tech/tags/android.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [color](<https://devfeed.tech/tags/color.md>), [support](<https://devfeed.tech/tags/support.md>), [toolbar](<https://devfeed.tech/tags/toolbar.md>)

### AI overview

This article explains basic accessibility practices for application development, focusing on color contrast between text and backgrounds. It uses an Android companion app for Fibery as a practical example of dynamically coloring a toolbar and choosing suitable text and icon colors.

### Source excerpt

Source Introduction One of the important parts of application development is to make it accessible to as many users as possible. This includes people with impaired vision, color blindness, impaired hearing, impaired dexterity, cognitive disabilities, and many other disabilities. Making an app accessible is challenging but rewarding. The difficulty is because the development team should pay attention to some details which often might be overlooked. Though besides some advanced accessibility support might be too expensive to add, there are still some basic best practices to ensure that your app development is heading in the right direction (and can be improved later over time). Basic accessibility support includes providing content descriptions, large enough touchable areas and ensuring good color contrast between foreground and background components. In this article, we'll go in detail on the latest -- color contrast. We'll take a look at one specific situation I faced while developing FiberyUnofficial -- my pet project, Android companion app for https://fibery.io.

## Accessible range slider

DevFeed: [Accessible range slider](<https://devfeed.tech/articles/accessible-range-slider-37233.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/accessible-range-slider/>)

Author: Stanko

Published: 2019-05-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [aria](<https://devfeed.tech/topics/aria.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Code](<https://devfeed.tech/topics/code.md>), [Library](<https://devfeed.tech/topics/library.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [aria](<https://devfeed.tech/tags/aria.md>), [callback](<https://devfeed.tech/tags/callback.md>), [code](<https://devfeed.tech/tags/code.md>), [demo](<https://devfeed.tech/tags/demo.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [features](<https://devfeed.tech/tags/features.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [library](<https://devfeed.tech/tags/library.md>), [react](<https://devfeed.tech/tags/react.md>)

### AI overview

The article describes a small range slider built for a React project after existing options lacked a combination of touch support, accessibility, callbacks, and easy styling. It presents the slider as an accessibility-first JavaScript library with ARIA and keyboard support, touch-friendly interaction, tooltips, a user-controlled buffer bar, callbacks, and styling options. A React wrapper was planned, and the code was released under the MIT license.

### Source excerpt

This time I want to share a small range slider (progress bar) I built. Check the demo. Code and documentation are available here. Same story again, on a React project we needed a media progress bar, and I ended up writing one myself. Why I didn't like anything I found? Well, everything I tried was missing one of the things we considered mandatory - good touch support, accessibility (aria attributes, keyboard control), callbacks or easy styling. On this specific project we went with Material-UI's slider, but it is still in their beta (lab) phase and it has couple of glitches. Soon we are going to replace it with the one I built. Accessibility # This range slider is the first library I wrote with accessibility-first mindset. That is something that I want to pursue and promote more. If you start with basic accessibility and build features around it, it will be much easier than just adding accessibility stuff when library is complete.Similar like it goes with tests. I do it myself, too - I get excited about the problem, start hacking, and couple of hours later I have a decent codebase and zero tests. Features # I started using this example and added more features. And I would love to mention a few: Fully accessible (aria attributes and keyboard control) Great touch support, actual hitbox area is bigger than track and handle Two tooltips, one for the current value, and the other shown on hover which shows the value that will be set on click Additional "buffer bar" that is controlled by the user (great for media players) Callback system Easy to style (I plan to add more themes) At the moment, only plain JavaScript version is available, but I plan to add a React wrapper. And while we are talking about accessible React libraries, you should check David Clark's work: react-aria-modal react-aria-menubutton react-aria-tabpanel He has a bunch of other great libraries, be sure to check them out. As usual it is released under MIT license and code is available on GitHub. Let me kn

## An accessible explanation of the Spectre and Meltdown CPU vulnerabilities

DevFeed: [An accessible explanation of the Spectre and Meltdown CPU vulnerabilities](<https://devfeed.tech/articles/spectre-meltdown-tapping-into-the-cpu-s-subconscious-thoughts-36545.md>)

Original publisher: [Read original article](<https://berthub.eu/articles/posts/spectre-meltdown/>)

Published: 2018-01-06T09:34:05Z

Content type: article

Language: en

Sources: [Bert Hubert's writings](<https://devfeed.tech/sources/bert-hubert-s-writings.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [accessible](<https://devfeed.tech/tags/accessible.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [cyber](<https://devfeed.tech/tags/cyber.md>), [processor](<https://devfeed.tech/tags/processor.md>), [programming](<https://devfeed.tech/tags/programming.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

An accessible explanation of the Spectre and Meltdown vulnerabilities, including how CPU out-of-order execution improves processing speed while remaining hidden from executing programs.

### Source excerpt

Comments are very welcome on bert@hubertnet.nl or @bert_hu_bert. Update: several constructive remarks have been used to improve this text. Thanks! In this post I will attempt to fully explain the Spectre and Meltdown vulnerabilities in an accessible way. I decided to write it up after I realised it took me more than a day to figure it out, even though I've been doing security related stuff on CPUs for 20 years.

## Making Websites Better through Accessibility

DevFeed: [Making Websites Better through Accessibility](<https://devfeed.tech/articles/making-websites-better-through-accessibility-31281.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/making-websites-accessible-americans-with-disabilities-act-ada>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2017-07-23T22:42:00Z

Content type: article

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Website](<https://devfeed.tech/topics/website.md>), [Development](<https://devfeed.tech/topics/development.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [accessible](<https://devfeed.tech/tags/accessible.md>), [away](<https://devfeed.tech/tags/away.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [customers](<https://devfeed.tech/tags/customers.md>), [development](<https://devfeed.tech/tags/development.md>), [insights](<https://devfeed.tech/tags/insights.md>), [isn-t](<https://devfeed.tech/tags/isn-t.md>), [just](<https://devfeed.tech/tags/just.md>), [legal](<https://devfeed.tech/tags/legal.md>), [making](<https://devfeed.tech/tags/making.md>), [means](<https://devfeed.tech/tags/means.md>), [turning](<https://devfeed.tech/tags/turning.md>), [ux](<https://devfeed.tech/tags/ux.md>), [wants](<https://devfeed.tech/tags/wants.md>), [website](<https://devfeed.tech/tags/website.md>)

### AI overview

The article explains that website accessibility helps organizations reach more people, avoid excluding customers, and support inclusive products and services. It discusses legal requirements under the Americans with Disabilities Act in the United States and recommends integrating accessibility into design and development workflows.

### Source excerpt

Making your website accessible isn't just about legal compliance, it also means not turning away customers. Because who wants to do that?

[Next page](<https://devfeed.tech/tags/accessible.md?cursor=WyIyMDE3LTA3LTIzVDIyOjQyOjAwKzAwOjAwIiwgIjA0ODc4NWQ1LWYzYTgtNGQxOS1iNGJhLTY5MmU2MzU1YzgwNSJd>)