The Cake Is a Lie... And So Is Your Login’s Accessibility

Bookmark
Rate this content

Much like the promise of cake in Portal, login forms are everywhere in web development. While they may seem functional at first glance, many users with disabilities encounter a maze of invisible walls, from keyboard traps to inaccessible CAPTCHAs. It's as if GLaDOS designed these forms herself to test us!

In this practical session, we will debug the accessibility issues of a real React login component live, similar to traversing those test chambers: Using an actual screen reader, we'll show how minor improvements, such as proper ARIA implementation and effective focus management, can transform a complex test chamber into a smooth user experience. Additionally, we will address the common pitfalls that GLaDOS might throw at us in both the Portal universe and the real world of accessibility, especially concerning authentication processes and its special needs as written down in the WCAG. So grab your portal gun—let's work together to break down these barriers and ensure that authentication truly works for everyone. The cake might be a lie, but accessibility doesn't have to be!

This talk has been presented at React Advanced 2025, check out the latest edition of this React Conference.

FAQ

The main theme of Ramona Schwering's talk is accessibility in web applications, focusing on ensuring that digital platforms are usable and accessible for everyone, including those with disabilities.

Ramona Schwering references the game 'Portal' by Valve to explain accessibility. She uses the game's start scenario and the concept of being in a clinical room to describe the confusion and challenges faced by people using inaccessible applications.

Examples of accessibility issues mentioned include using placeholders instead of labels, low contrast in color schemes, lack of keyboard navigation focus, inadequate error handling, and insufficient screen reader support.

A screen reader is a tool that reads aloud the content on a computer screen, helping visually impaired users navigate and understand digital content. It acts as a companion, much like the companion cube in Portal, guiding users through web content.

Best practices for accessible authentication include not disabling paste functionality for passwords, offering passwordless options like Magic Links and WebAuthn, avoiding complex CAPTCHAs, considering cognitive load in multi-factor authentication, and providing alternatives for QR codes.

The European Accessibility Act is important because it legally requires digital platforms to be accessible to all users, ensuring that accessibility is not just a claim but a mandatory aspect of application development.

Ramona Schwering emphasizes semantics to ensure that web applications are properly structured, making them more accessible to screen readers and other assistive technologies, thus improving the user experience for people with disabilities.

The 'companion cube' analogy signifies how a screen reader serves as a vital helper for users navigating digital content, ensuring they are not left behind or confused, similar to how the companion cube aids players in the game Portal.

Web developers can ensure their applications are truly accessible by implementing genuine accessibility features, adhering to guidelines like the Web Content Accessibility Guidelines (WCAG), and regularly testing their applications with assistive technologies.

Ramona Schwering uses the metaphor of 'cake' to illustrate how accessibility should not be something that is promised but not delivered. She compares accessibility in applications to the 'cake is a lie' phrase from the game Portal, emphasizing that accessibility should be genuinely implemented, not just claimed.

Ramona Schwering
Ramona Schwering
29 min
01 Dec, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Welcome to React Advanced! Disappointed about the cake. Let's discuss accessibility and a mysterious waking up scenario in a strange room. A metaphorical scenario with a confusing room and inaccessible apps, linked to the game Portal as a puzzle platformer series with challenging levels and a taunting AI named Gladys. Discussing the spectrum of disability, including temporary and situational disabilities like wearing glasses affecting screen readability and the importance of considering accessibility in all applications. Discussing the importance of true accessibility in projects and the need to go beyond the legal requirements for genuine inclusivity. Exploring the importance of keyboard accessibility and focus indication for non-visual users. Exploring the functionality of screen readers across different operating systems and demonstrating its use in a web accessibility context with voiceover functionality.

1. Talk Introduction

Short description:

Welcome to React Advanced! Disappointed about the cake. Let's discuss accessibility and a mysterious waking up scenario in a strange room.

Hello, everyone, and welcome to my talk here at React Advanced this year. I'm so happy to have you here, but first things first, I need to disappoint you. I don't have cake with you. Obviously, there's logistical issues, but also as a former test engineer, I cannot pass you a cake which doesn't fulfill my own quality requirements, so I cannot do that to you. But let's try to have accessibility not be that cake, like this not available or even cake as a lie.

And in a in-person setting, I would like to ask you if there's anyone in the room who knows this quote, cake as a lie? Well, you shouldn't be surprised, but if not, no worries, I will keep you with me on the journey like the best companion cube ever. I will not leave you behind, no worries, I don't like the source of this quote, but I digress. It doesn't matter if you know or don't know about the quote, I want you to join me in this following situation.

Let's say, you wake up, you don't have any memory why you are not inside of your home, inside of your own bed, and that makes you scared, that makes you confused, but well, first things first, taking a look around. You see, this small room here, it's not really comfy, right? So there's lots of glass, it looks pretty clinical, if I can say so. It's basically the room you wake up in. There's not that much, it's the bed you woke up in, there's a radio playing a catchy music, and after a few seconds a computer voice will start to talk.

2. Metaphorical Scenario in Portal Game

Short description:

A metaphorical scenario with a confusing room and inaccessible apps, linked to the game Portal as a puzzle platformer series with challenging levels and a taunting AI named Gladys.

The voice will welcome you, it sounds female if I can say so, so I'll address it as a she right now, but it's a computer voice. But this computer voice, even though it gives you a so-called warm welcome, you still feel confused because this voice is not helpful at all, because it will start citing security information, which you assume is important, right? But when it gets to the point, or seemingly gets to the point, it either blacks out or uses Spanish or any language you don't understand, so you cannot understand those key information on your own security. And even if you would be able to understand this language, you cannot make any sense of it, right? Because it says something along the lines as please refrain from any fail because of area of banks. Obviously, all of this doesn't help you with the confusion, with the feeling of being lost, without any clue on what to do here, why you're here, how to get out. And this is a situation, a metaphor, where some people might find yourself in a weird And we'll get to the reason why later.

But the first and foremost reason why I use this metaphor, this room, is because this can be the same feeling if you use an inaccessible app while having a disability. So this is why I choose this depiction of the coinbuck confusing room to begin with. And as I already hinted at, maybe some of you recognize that it's not just a random room I was drawing and talking about. It's a certain start scenario, starting environment of a certain game, which I really like. This game is called Portal. It's by Valve. And it was published in 27, so it's almost 20 years old, I know I feel, but let's get not into that. So this is basically a puzzle platformer game series. There's two main installments and I guess lots of Steam Workshop stuff. And it's a series of puzzles inside of those games.

So the levels are in rooms called test chambers and every room contains a puzzle. And those puzzles need to be solved by teleporting either the player's characters, so yourself, or simple objects. And you put those teleport features in place by spawning portals, which are basically like entry and exit doors to these different places. And you try to transfer one object or yourself from this entry object portal to the exit portal. Yes. And while doing this, you are a first person player, so you have a first person view. And this computer voice, which welcomed you at the start, will keep challenging and haunting you. The AI is trying to start using that voice, it's called Gladys. And it's taunting you with a promise of receiving cake when all puzzles are completed. So yes, seemingly you'll get cake, right? And yes, we are in a weird room in this clinical room, in this science scenario portal. And I like to call this starting room like zero.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Accessibility at Discord
React Advanced 2021React Advanced 2021
22 min
Accessibility at Discord
Top Content
This Talk discusses the accessibility efforts at Discord, focusing on keyboard navigation and the challenges faced with implementing focus rings and outlines. The speaker showcases a unified focus ring system and a saturation slider to address accessibility concerns. They also highlight the implementation of role colors and the use of CSS filters for accessibility improvements. The Talk concludes with insights on runtime accessibility checking and the development of a performant core runtime system for checking accessibility issues.
Nested Interactive Elements: An Nightmare in Accessibility
React Advanced 2023React Advanced 2023
23 min
Nested Interactive Elements: An Nightmare in Accessibility
Top Content
Watch video: Nested Interactive Elements: An Nightmare in Accessibility
Nested interactive elements can cause accessibility issues on websites, and the speaker shares a personal experience with an accessibility bug involving a list component. Mitigating nested interactive structures involves limiting these patterns during development and restructuring existing elements. The speaker provides recommendations for improving accessibility, such as adjusting role properties and gathering user feedback. The conclusion emphasizes the importance of accessible solutions and encourages sharing resources to build more inclusive experiences.
Configuring Axe Accessibility Tests
TestJS Summit 2021TestJS Summit 2021
30 min
Configuring Axe Accessibility Tests
Top Content
AXe is an accessibility engine for automated web UI testing that runs a set of rules to test for accessibility problems. It can be configured to disable or enable specific rules and run based on tags. Axe provides various options, but axe linter does not support all options. The importance of investing time and resources in accessibility is emphasized, as it benefits not only those with disabilities but improves the web for everyone. Manual testing is also highlighted as a necessary complement to automated tests for addressing accessibility issues.
Dialog Dilemmas and Modal Mischief: A Deep Dive Into Pop-Ups
JSNation 2023JSNation 2023
10 min
Dialog Dilemmas and Modal Mischief: A Deep Dive Into Pop-Ups
The Talk discusses the use of dialogues and popovers in web development. Dialogues can be modal or non-modal and are now accessibility-supported. Popovers are versatile and can be added to any element without JavaScript. They provide suggestions, pickers, teaching UI, list boxes, and action menus. Modal and non-modal dialogues and popovers have different behaviors and dismissal methods. Browser support for these features is expanding, but there are still open questions about positioning, semantics, and other use cases.
Building a Fast Website for Every Single Visitor
React Advanced 2024React Advanced 2024
31 min
Building a Fast Website for Every Single Visitor
This talk focuses on building a fast and accessible website for all users, highlighting the importance of performance and user experience optimization. It emphasizes the need for adaptive implementation to cater to different devices and user conditions. The talk also discusses the factors beyond the developer's control, such as screen size, browsers, devices, internet connection, and sitting position. It highlights the significance of optimizing image components for various devices and the role of browser support and rendering engines. The speaker discusses the use of future APIs and the challenges of browser compatibility, as well as optimizing image formats and bundler compatibility. The talk provides insights on controlling bundler and device compatibility, optimizing CPU usage, internet connection, and JavaScript form submission. It concludes with a proposal to respond with save data instead of effective type for limited internet connections and recommends using React with adaptive hooks for better user experiences. Overall, the talk covers essential aspects of building a fast and accessible website.
a11y and TDD: A Perfect Match
JSNation 2022JSNation 2022
24 min
a11y and TDD: A Perfect Match
This Talk explores the intersection of accessibility and test-driven development (TDD) in software development. TDD is a process that involves writing tests before writing production code, providing a safety net for code changes. The Talk demonstrates how to apply TDD principles to real-life examples, such as filling out a form, and emphasizes the importance of user-centric testing. By using atomic design principles, code can be organized in a clean and easy way. The Talk also discusses the use of labels and test IDs in tests for improved accessibility.

Workshops on related topic

Web Accessibility for Ninjas: A Practical Approach for Creating Accessible Web Applications
React Summit 2023React Summit 2023
109 min
Web Accessibility for Ninjas: A Practical Approach for Creating Accessible Web Applications
Workshop
Asaf Shochet Avida
Eitan Noy
2 authors
In this hands-on workshop, we’ll equip you with the tools and techniques you need to create accessible web applications. We’ll explore the principles of inclusive design and learn how to test our websites using assistive technology to ensure that they work for everyone.
We’ll cover topics such as semantic markup, ARIA roles, accessible forms, and navigation, and then dive into coding exercises where you’ll get to apply what you’ve learned. We’ll use automated testing tools to validate our work and ensure that we meet accessibility standards.
By the end of this workshop, you’ll be equipped with the knowledge and skills to create accessible websites that work for everyone, and you’ll have hands-on experience using the latest techniques and tools for inclusive design and testing. Join us for this awesome coding workshop and become a ninja in web accessibility and inclusive design!
Automated accessibility testing with jest-axe and Lighthouse CI
TestJS Summit 2021TestJS Summit 2021
85 min
Automated accessibility testing with jest-axe and Lighthouse CI
Workshop
Bonnie Schulkin
Bonnie Schulkin
Do your automated tests include a11y checks? This workshop will cover how to get started with jest-axe to detect code-based accessibility violations, and Lighthouse CI to validate the accessibility of fully rendered pages. No amount of automated tests can replace manual accessibility testing, but these checks will make sure that your manual testers aren't doing more work than they need to.
Web Accessibility in JavaScript Apps
React Summit 2022React Summit 2022
161 min
Web Accessibility in JavaScript Apps
Workshop
Sandrina Pereira
Sandrina Pereira
Often we see JavaScript damaging the accessibility of a website. In this workshop, you’ll learn how to avoid common mistakes and how to use JS in your favor to actually enhance the accessibility of your web apps!
In this workshop we’ll explore multiple real-world examples with accessibility no-nos, and you'll learn how to make them work for people using a mouse or a keyboard. You’ll also learn how screen readers are used, and I'll show you that there's no reason to be afraid of using one!
Join me and let me show you how accessibility doesn't limit your solutions or skills. On the contrary, it will make them more inclusive!
By the end, you will:- Understand WCAG principles and how they're organized- Know common cases where JavaScript is essential to accessibility- Create inclusive links, buttons and toggleble elements- Use live regions for errors and loading states- Integrate accessibility into your team workflow right away- Realize that creating accessible websites isn’t as hard as it sounds ;)
The Cake Is a Lie... And So Is Your Login’s Accessibility
React Advanced 2025React Advanced 2025
100 min
The Cake Is a Lie... And So Is Your Login’s Accessibility
Workshop
Ramona Schwering
Ramona Schwering
Much like the promise of cake in Portal, login forms are everywhere in web development. While they may seem functional at first glance, many users with disabilities encounter a maze of invisible walls, from keyboard traps to inaccessible CAPTCHAs. It's as if GLaDOS designed these forms herself to test us!In this practical walkthrough, we will debug the accessibility issues of a real React login component live, similar to traversing those test chambers: Using an actual screen reader, we'll show how minor improvements, such as proper ARIA implementation and effective focus management, can transform a complex test chamber into a smooth user experience. Additionally, we will address the common pitfalls that GLaDOS might throw at us in both the Portal universe and the real world of accessibility, especially concerning authentication processes and its special needs. So grab your portal gun—let's work together to break down these barriers and ensure that authentication truly works for everyone. The cake might be a lie, but accessibility doesn't have to be!