Eevis Panula
banner
eevis.codes
Eevis Panula
@eevis.codes
Mobile Accessibility Specialist, Google Developer Expert on Android and Senior Android Developer, Blogger, Speaker | She/They

I'm living in Finland 🇫🇮

My website: https://eevis.codes
And YouTube channel: https://www.youtube.com/@eeviscode
Another Compose tip: If you use `clickable`-modifier, or for example, a Button-component, you don't need to add `focusable`-modifier to that component. If you do, the component gets added twice to tab order, meaning users using assistive technology for navigation would focus twice on that component.
November 12, 2025 at 8:14 AM
My talk from droidcon London is out!

I share about creative coding, and some examples of what it can be.There's also live coding with Jetpack Compose Canvas  🤩 And of course, there are some ghosts 👻

#AndroidDev #Android #Kotlin #Canvas
Creative Coding with Kotlin - Eeva-Jonna Panula | droidcon London 2025
🎤 Talk: Creative Coding with Kotlin 👤 Speaker: Eeva-Jonna Panula 📍 Event: droidcon London 2025 📅 Date: October 30th - 31st, 2025 --- I used to suck at drawing on Canvas. As an Android developer…
youtu.be
November 10, 2025 at 3:28 PM
An Android (and Compose) tip: Use IconButton-component instead of building own, clickable component from an image with modifiers.

The button works out of the box with different input methods (touch, keyboard, Switch access, screen reader etc.)
November 8, 2025 at 2:36 PM
I had a nice chat with in Berlin, and here's the recording, in which we discuss Android community, accessibility, debugging focus issues on Android, and other things. Let me know what you think!

#dcbln25 #droidcon #AndroidDev

www.youtube.com/watch?v=FO83...
An Interview with Eeva-Jonna Panula an accessibility expert | droidcon Berlin 2025
Dive into the critical world of Android Accessibility with Eeva-Jonna Panula! In this exclusive interview from droidcon Berlin 2025, Eeva-Jonna shares her journey to becoming a leading accessibility…
www.youtube.com
November 7, 2025 at 9:47 AM
Reposted by Eevis Panula
I sent out jetc.dev Newsletter Issue #288! Material3 Adaptive! Cahier! @eevis.codes on font scaling tests! Data tables! And... will Compose work remotely?!? jetc.dev/issues/288 #JetpackCompose #AndroidDev
November 4, 2025 at 2:18 PM
While testing Android apps for a11y, the biggest problems I see are with larger font sizes. I'm also often asked for how to write automated tests for accessibility, so I wanted to share tips on testing large font size related problems.

eevis.codes/blog/2025-10...

#AndroidDev #AndroidAccessibility
Compose UI Tests for Larger Font Sizes: Scrolling and Text Truncation | Eevis Panula, Mobile Accessibility Engineer
I’m often asked tips on writing accessibility tests for Android, and I decided to write this post to demonstrate how to test some issues with larger font sizes with UI tests.
eevis.codes
November 2, 2025 at 7:20 AM
Only a couple of days and I'll be in London, talking about Creative Coding!

#dcldn25

youtube.com/shorts/b1qnt...
Creative Coding & Art with Kotlin! 🎨 | Eeva-Jonna Panula
YouTube video by droidcon & fluttercon
youtube.com
October 27, 2025 at 9:42 AM
I gave a talk today at droidcon Berlin (It's All About Focus - and Accessibility) and promised to share a link to the blog post with code samples - here it is: eevis.codes/blog/2025-07...

#dcbln #dcbln25
It's All About (Accessibility) Focus And Compose | Eevis Panula, Mobile Accessibility Engineer
Focus works differently for keyboard navigation and screen readers, such as TalkBack. In this blog post, I'll discuss the differences.
eevis.codes
September 24, 2025 at 12:28 PM
Lately, I've been learning about Wear OS development, and naturally, accessibility has been a part of that learning journey. In the blog post, I share my learnings from supporting Talkback to Magnification.

eevis.codes/blog/2025-09...

#AndroidDev #AndroidAccessibility #A11y
Wear OS Accessibility Considerations | Eevis Panula, Mobile Accessibility Engineer
Lately, I've been learning about Wear OS development. In this blog post, I'll share some of the learnings I've had on Wear OS accessibility.
eevis.codes
September 8, 2025 at 3:34 AM
I've been blogging for a while, and there is a thing or two I've learned about making blog posts more accessible. In this post, I share some of those things, from sharing code as text (instead of an image) to considering adding a summary in the beginning of the post.

eevis.codes/blog/2025-07...
10 Tips to Make Your Blog Posts More Accessible | Eevis Panula, Mobile Accessibility Engineer
In this blog post, I share some tips on how to improve the accessibility of your blog posts.
eevis.codes
July 19, 2025 at 8:22 AM
Reposted by Eevis Panula
I just sent out jetc.dev Newsletter Issue #273! Android Makers! @eevis.codes on accessibility focus *and* keyboard focus! FABs and FAMs! PWAs! jetc.dev/issues/273 #JetpackCompose #AndroidDev
July 15, 2025 at 12:56 PM
I've seen so much confusion around focus in Compose (TalkBack and keyboard), so I wrote a blog post about their differences, how to make components focusable, move focus programmatically, and change the traversal order for both of them.

eevis.codes/blog/2025-07...

#JetpackCompose #AndroidDev #a11y
It's All About (Accessibility) Focus And Compose | Eevis Panula, Mobile Accessibility Engineer
Focus works differently for keyboard navigation and screen readers, such as TalkBack. In this blog post, I'll discuss the differences.
eevis.codes
July 8, 2025 at 3:34 AM
Reposted by Eevis Panula
Check out this week's Top 7 featured posts on DEV! Insightful reads from @eevis.codes, and @liztormato.bsky.social, plus five other fantastic authors.

#Android #AI #RakuLang #CyberSecurity #DevOps

dev.to/devteam/top-...
Top 7 Featured DEV Posts of the Week
Welcome to this week's Top 7, where the DEV editorial team handpicks their favorite posts from the...
dev.to
June 26, 2025 at 4:28 PM
The next AI tool I've tested for how accessible Android code it generates is Cursor. The accessibility issues I found were similar to ones I've found with Gemini and Junie. While these tests are already painting a picture, I'll do one more round before writing a summary.

eevis.codes/blog/2025-06...
Does Cursor Generate Accessible Android Apps? | Eevis Panula, Mobile Accessibility Engineer
It's time to test the next AI tool for code generation and how accessible code it provides. This time, I'm experimenting with Cursor.
eevis.codes
June 16, 2025 at 10:17 AM
I'm continuing on the theme of "Do AI-tools create accesible code", and this time, I tested Junie from JetBrains.

The results were pretty similar to those with Gemini before - both test apps I generated have accessibility issues.

eevis.codes/blog/2025-05...

#a11y #AndroidDev #Junie
Does Junie Create Accessible Android Apps? | Eevis Panula, Mobile Accessibility Engineer
I'm continuing my tests with AI-generated Android code and how accessible these generated apps are. This time, the tool of choice is Junie, the coding agent by JetBrains.
eevis.codes
May 12, 2025 at 3:49 AM
After some exciting things taking a lot of time, I finally had the time to publish my newest blog post, in which I discuss the accessibility problems text truncation can create, if it's not done right. I also offer some solutions to these issues.

eevis.codes/blog/2025-04...
The Problem of Trun... | Eevis Panula, Software Developer
In this blog post, I'll look into the accessibility problems text truncation can create if it's not done right.
eevis.codes
April 26, 2025 at 7:37 AM
I just published a new video: Draw a Planet with Jetpack Compose Canvas - Silent Coding!
Draw a Planet with Jetpack Compose Canvas - Silent Coding
Hey In this video, I continue drawing space-related items on Jetpack Compose Canvas, by drawing a planet ‍ This is a ...
www.youtube.com
April 15, 2025 at 9:02 AM
I just published a new video: Draw Saturn with Jetpack Compose Canvas - Silent Coding!
Draw Saturn with Jetpack Compose Canvas - Silent Coding
Hey In this video, I draw Saturn on Jetpack Compose Canvas ‍ This is a silent coding video, so no talking included, just ...
www.youtube.com
April 9, 2025 at 9:02 AM
I just published a new video: Animate Text Colors on Jetpack Compose Canvas - Silent Coding!
Animate Text Colors on Jetpack Compose Canvas - Silent Coding
Hey In this video, I animate colors of the text drawn on Jetpack Compose Canvas ‍ This is a silent coding video, so no ...
www.youtube.com
April 1, 2025 at 7:02 AM
Does Gemini provide accessible Android code? 👀 I generated two apps with Gemini and tested how accessible the app is.

Result: the first one had multiple issues and the second one had less.

I'll test other tools for comparison, so stay tuned!

eevis.codes/blog/2025-03...

#a11y #AndroidDev #gemini
Does Gemini Create Accessible Android Apps? | Eevis Panula, Software Developer
I'm skeptical about the accessibility of generated Android code, so I decided to test how accessible the code Gemini generates is. This post shares the results.
eevis.codes
March 31, 2025 at 12:34 PM
I might have found the "No ARIA is better than bad ARIA" of the Android world: "No contentDescription for non-graphical elements is better than bad contentDescription".

Folks (and especially generative AI), having content description attached to a Button or Text is usually a bad idea.
March 25, 2025 at 11:23 AM
I just published a new video: Add Text with Custom Fonts to Jetpack Compose Canvas - Silent Coding!
Add Text with Custom Fonts to Jetpack Compose Canvas - Silent Coding
Hey In this video, I add text to Jetpack Compose Canvas, and then change them to use custom fonts ‍ This is a silent ...
www.youtube.com
March 25, 2025 at 8:02 AM
First (half) week back at work done after five weeks of burnout sickness leave.

These three days have felt like three years 😅 but I guess it's always like that after longer absence.
March 21, 2025 at 1:37 PM
I just published a new video: Add Interaction to Heart Candies on Jetpack Compose Canvas - Silent Coding!
Add Interaction to Heart Candies on Jetpack Compose Canvas - Silent Coding
Hey In this video, add some interaction to heart candies drawn in previous videos, all this drawn on Jetpack Compose ...
www.youtube.com
March 18, 2025 at 8:02 AM
So I'm writing a blog post about generating a simple app (UI, not functionality) with Gemini and testing how accessible that app would be.

And oh my... When I added the requirement of the app being accessible to the prompt... Let's just say, it did pretty much the opposite. This is going to be fun.
March 18, 2025 at 7:42 AM