What Tumblr Taught Me About Accessibility

As someone who was a teenager during its peak, Tumblr has had an undeniable influence on my life. Like many people my age, my first exposure to the concepts of ‘accessibility’ and ‘ableism’ was through Tumblr. In sharp contrast to the web accessibility community, where we often focus on technical details, meeting clear criterion and legal compliance, Tumblr’s disability community focused on more human facets of accessibility by practicing accessibility in a variety of creative ways. Even when presented with access barriers created by the inaccessibility of Tumblr as a platform, Tumblr as a community has found unique ways to support disabled users. As developers, we need to learn from our mistakes by finding out where our users compensate for our deficiencies, and learn from how disabled communities support themselves.

On ‘Disability’

When I was a child, my understanding of disability was very binary and limited. You were either disabled or not disabled; my younger self might imagine someone in a wheelchair, or someone with a prosthetic limb. My understanding changed entirely when I met Maddy Ruvolo, a disability activist whom I had the pleasure of meeting in college. Maddy was the co-founder and president of the school’s Disability, Illness, and Difference Alliance, and she wrote her senior thesis on chronically ill youth and the role that Tumblr played as a model of disability community.

Because I am the kind of big nerd who enjoys reading her friends’ theses, it was through her and the many subsequent hours I spent browsing Tumblr that I began to reevaluate my limited, abled conception of disability. It may be tempting to try to categorize experiences of disability into three distinct categories; [1] what we might call more visibly disabled people, [2] chronically ill people, and [3] mentally ill people. Over time, I came to understand that while there may be significant differences between these three experiences, there is also significant overlap among their access needs and struggles. The boundaries between these three categories are so blurry that we cannot afford to make generalizations about what we perceive these groups to be.

What is Tumblr?

Tumblr, a microblogging platform popular amongst young people, was always a place where niche communities could flourish, and discussion of topics such as race, sexuality and gender was frequent and widely shared. Among these communities were those that discussed various aspects of disability, particularly chronic illness and mental illness.

Unfortunately, Tumblr’s own terrible web accessibility has excluded a very large portion of the disability community, primarily by being completely unusable to those who use assistive technologies such as screen readers and keyboard only users. As a result, the discussion surrounding disability on Tumblr has been shaped by the absence of disabled people who were more likely to be experts in the technical facets of web accessibility. While I think that Tumblr (and all platforms) should commit to complying with the Web Content Accessibility Guidelines (WCAG), there are still valuable lessons to be learned by examining the idea of accessibility from different, non-technical perspectives.

Tumblr and Third Party Apps

Often maligned as ‘the blue hellsite’ by its own user base, Tumblr as a platform has always had a hostile relationship with the majority of its users. Tumblr users reading this post may remember the time they removed the ability for users to publicly reply to each other’s posts. Tumblr’s vague official announcement post did not go over well, and users were left to speculate whether the new instant message/direct message (DM) feature was really going to replace the ability to reply. Imagine if Twitter removed the ability to respond to tweets and insisted that DMs were a replacement! Although Tumblr did eventually bring replies back, this was just one incident in a long series of disappointing management decisions from Tumblr. Most recently, Tumblr’s mass purging of ‘adult content’ has de-platformed many queer creators, regardless of whether or not their content actually contained ‘adult content’, further contributing to the toxic idea that queer people are inherently inappropriate for children.

Long-time Tumblr users may also recall using Tumblr-specific extensions in order to improve their browsing experience. Tumblr Savior was among these extensions, and for many users, it lived up to its name and made Tumblr into a usable experience. Originally released in 2008, Tumblr Savior functioned similarly to Twitter’s muted words, though it was even more powerful because it searched the full contents of the HTML when deciding whether or not to hide a post. This muting mechanism was helpful as instead of relying on the poster to tag posts with specific tags, Tumblr Savior would hide anything that mentioned the offending topic within the body of the post.

Most abled users would use this blocking feature to hide things like TV show spoilers or mentions of a fandom they didn’t particularly care for, but many disabled people considered Tumblr Savior a necessary tool in order to use the platform at all. For example, people with motion sensitivities or conditions like epilepsy could choose to universally block all gifs in order to avoid potential triggers. Similarly, people who experience trauma/Post Traumatic Stress Disorder (PTSD) or certain phobias could avoid topics which may induce panic attacks and other negative responses.

Muting mechanisms and preference controls are vital tools for accessibility. Platforms that host content, whether they be social media networks, news outlets or something else entirely, have an obligation to allow users to control their own experiences. Whether it be someone hoping to browse Instagram without triggering their eating disorder, someone trying to keep up with their relatives without being subject to a seizure-inducing gif, someone avoiding the details of a recent celebrity suicide for their own mental health or someone with a serious phobia of balloons, we all have a right to control what content we consume. Platforms do not have to take it upon themselves to block or censor any content that may negatively affect users, but providing a way for users to opt out of content is absolutely an accessibility issue, especially when marginalized communities, who experience trauma and anxiety at higher rates, continue to be the targets of hate crimes and political attacks, both online and offline.

Third-party Tumblr apps once provided a number of other features that allow disabled users to overcome Tumblr’s shortcomings. Missing E and XKit (both of the original apps are now defunct, though XKit lives on with a new team behind it, they’re always looking for contributors) were two of the most popular more full-featured extensions. In addition to providing muting and advanced blocking implementations for better content filtering and harassment prevention, these apps contained features such as one click reblogging and auto-tagging. One-click reblogging allowed for users to share a post to their own blog very quickly, and auto-tagging would allow users to apply appropriate tags to a post with minimal hassle. In her thesis, Maddy argued that because users with chronic illnesses often experience fatigue issues, features like one-click reblogging enabled people who may be too exhausted to leave the house to engage in some form of social interaction, however small, while still accommodating for their followers’ triggers by automatically tagging posts when necessary. As abled people, we often regard features like this as a convenience for most users, but they can be necessary for disabled users to experience the app at all.

Popup that begins with the text: Hello! We've noticed you're using a browser hack, Missing-E, that can cause serious problems for you and for Tumblr. It contains a long scrollable list of the potential 'problems' that Missing-E creates.
Screenshot of the pop-up presented to Missing-E users

You might think that Tumblr would look favorably upon the developers who spent countless unpaid hours working to make their platform more usable, but instead, Tumblr actively waged war with third-party app developers. In 2011, users with the Missing E extension installed were greeted with a pop-up that warned against using a ‘browser hack’, which Tumblr claimed could lead to disastrous consequences such as data loss. Tumblr ultimately banned Missing E, despite the developer’s attempts to work within the guidelines that Tumblr had set.

In 2017, half a decade later, Tumblr finally released a post filtering feature. In comparison to some of the third-party extensions, Tumblr’s solution only enabled users to filter by tags. Relying on users to tag things consistently is inferior to full text search (imagine if Twitter’s muted words only worked for hashtags). The more comprehensive Chrome extension Tumblr Savior still has over 150,000 installs today despite the fact it no longer works consistently and was last updated over a year ago.

The Unsemantic Web

Generally speaking, platforms like Tumblr are often hostile to third-party developers, and by proxy, disabled users. This can manifest in ways that are overt, as with Tumblr’s active attempts to block third party extensions, or in more subtle ways, such as when a platform makes engineering decisions in order to achieve some goal like improving developer convenience or thwarting adblockers, but with negative consequences for accessibility.

Facebook's awful awful code. You do not want me to transcribe it.
Screenshot of the code used for Facebook's 'Sponsored' link

Facebook’s ‘Sponsored’ link is a particularly egregious example of this. The sponsored link is a label on a post to indicate the content is sponsored. In order to display the word ‘Sponsored’ without directly displaying the word in its entirety, for fear of allowing detection by ad blockers, Facebook added dozens of extraneous letters in nested tags in hopes of making it difficult for ad blockers to parse the text. Until recently, the redundant code also made it difficult for assistive technologies to parse the text, resulting in some screen readers reading out ‘S-P-O…’ etc. as individual letters. After several months, Facebook appears to have resolved this (at least for the NVDA screen reader on Chrome), a minor victory.

Keeping things simple and semantic is key to writing good code. ‘Semantic’ in a web development context generally refers to using the right kind of HTML element for the job. Using the proper elements in the right context provides affordances for things like search engines and assistive technology, allowing them to convey meaning to the end user. In Facebook’s case, their 50+ line monstrosity can be replaced with a single tag, <span>Sponsored</span>. Overengineered solutions can make things inaccessible to users and dramatically increase the size of the page, slowing down the website and using up more data.

In addition to writing bloated, unsemantic code in order to thwart adblockers, Facebook’s code architecture decisions made it difficult for third-party developers to create accessibility fixes. For example, Facebook uses a CSS-in-JS solution that generates class names. CSS is a styling language that changes the appearance of elements on the page. We typically attach these styles through class names, so writing something like .box { background-color: red } would make all elements with the class name ‘box’ have a red background.

Third-party developers often rely on consistent class names in order to create extensions that last beyond a single update, but Facebook has prioritized their engineering needs over their end-users. Creating a scalable, easy-to-use naming system is a difficult task, as applications like Facebook have several thousand unique components that must be named in order to prevent styles from unintentionally affecting other parts of the page. Many CSS-in-JS solutions, including the one Facebook has chosen, take care of the naming process for you, and thus instead of having names like ‘box’, we get non-descriptive names like ‘q_q25znkklu’, as found in the screenshot above. While it is not necessary for class names to be meaningfully named, generated class names are often regenerated when changes are made. Any third party extensions that rely on those class names will have to be updated to accommodate the change, even if the actual styles themselves do not need to be updated. The most popular themes for Facebook are updated several times a week in order to keep up with Facebook’s changes. Maintaining a theme for one of these applications is a thankless and time-consuming task, and many developers are forced to give up.

Although changing one’s theme to feature Game of Thrones characters is likely not done to improve accessibility, many user-developed custom stylesheets are designed for accessibility purposes. Dark themes can reduce eye fatigue and headaches for people who have to look at their screens for a long period of time, and can be especially helpful for those with light sensitivities and or those who experience migraines. Fonts can be changed to better support readers who require larger fonts or fonts with better contrast (such as for dyslexic users), and user interfaces can have distracting (animated or otherwise) elements removed in order to help people with ADHD or other sensory disorders better focus on the task at hand.

As web developers, our first impulse might be to try and distill all these experiences into an actionable list. As tempting as it is to treat accessibility as a checklist, it does not work that way. As humans, we are complex and our access needs may conflict with one another. For example, I personally prefer dark themes and have a screen color temperature adjuster on at all times in order to manage the eye fatigue and headaches that often happen when you spend all of your time staring at a screen. However, some people experience glare, blurriness or streakiness when looking at light text against dark backgrounds, and dark themes would therefore be unusable for them. Even in the rare case that a platform provides both dark and light theme options, the size of a platform like Tumblr guarantees that some people will have conflicting access needs. People with multiple disabilities often have to make sacrifices by choosing between features that may support them in one area, but worsen another.

I don’t believe that developers for large platforms like Facebook and Tumblr are sitting in a room discussing how to make their sites as inaccessible as possible. They face attacks from a variety of bad actors, and their ever-changing, complicated codebases may be part of an active attempt to thwart these attacks. However, we cannot let our desire to fend off potentially malicious technology override the needs of actual users. When we make websites difficult for bots and scrapers to use, we have the unintentional side-effect of making website difficult for assistive technologies to use. Tools such as screen readers and magnification software are widely classified as assistive technology, but custom extensions and stylesheets should also fall under that category. If you can’t build something that accommodates the needs of users with disabilities, then the very least you can do is to build it in a transparent way that allows for them and their advocates to fix it on their own. When a platform is engineered for clicks and engagement, we prioritize profits over the people we are trying to serve, ultimately leading to unethical design practices. In short, the web is not a compile target and we should not treat it like one. Our users are not our enemies, and it should not be acceptable to exclude people with disabilities for profit or developer convenience.

Practicing Accessibility

To recap, Tumblr as a platform has blatantly ignored the requests of it’s disabled users, and was hostile to third-party developers that made it’s platform usable. While Tumblr as a platform has very much served as a lesson for what not to do, Tumblr’s disability community has developed unique strategies in order to cope with the inaccessibility of the platform, modelling what we might now call ‘inclusive design’ before the term was coined.

For those who might not know, individual Tumblr blogs live at their own URL, and can be styled using different themes, much like a MySpace page or a Wordpress blog. So while the Tumblr dashboard and application that bloggers use to make sites may not be compatible with most assistive technologies, individual blog owners can make their rendered sites somewhat more accessible through choosing more accessible themes. (I quantify ‘somewhat’ here as Tumblr has made many baffling decisions that make full compliance with the WCAG almost impossible).

Tumblr’s theme store offers a wide variety of themes, ranging from paid premium themes made by professionals and agencies to themes made by hobbyists who learned how to code by copy-and-pasting snippets from each other. In terms of accessibility, there is almost no correlation between the cost of the theme and how accessible it is. Sure, you have many themes built by hobbyists that are using 12px white fonts on pastel pink backgrounds, but it is painfully common for websites built by professionals to not be accessible at all. It is much easier for a simple theme built by a passionate hobbyist to be built accessibly by virtue of not adding the bloat and fanciness we are used to seeing in web projects these days.

Within the Tumblr theme building community, which is largely populated by non-professionals, certain practices have been created for accessibility purposes. For example, many themes offer the ability to display a spoon meter (derived from Spoon theory, a popular disability metaphor) or other variants such as stylized health meters and battery indicators. In a world where social media places immense pressure on us to be constantly available and performing our best selves, there is power to be found in being vulnerable and disengaging from the demands that social media places on our time. Declaring ‘I am low on spoons’ and having that be respected and accommodated by one’s followers is a profound action, and the ability to set boundaries is necessary in order to allow disabled people to participate in online communities.

Tumblr theme developers have often repurposed certain platform features in order to improve accessibility. An interesting example of this is the {TagsAsClasses} functionality. The {TagsAsClasses} feature outputs tags on a post as CSS classes that can be referenced for styling purposes. Although this feature was likely created for more commercial purposes, users have utilized this tag for a variety of access needs. Users can add support for multilingual blogs by tagging posts with right-to-left languages (such as Arabic) appropriately. It can also be used to allow users to accommodate for their followers’ needs by tagging things for common phobias or triggers such as #motion warning, #no captions, #spiders, #gore, and hiding that content or placing it under a ‘Read More’ cut.

Several themes offer a wide variety of settings in offer to support as many different kinds of reading experiences as possible. Amateur theme developers share snippets for light and dark mode toggles, bold/italic style removers and font family switchers (to toggle between fonts that users may find more readable, as people have different preferences). While their implementations aren’t always perfect, unpaid amateurs, many of whom are students, are putting in massive amounts of effort to improve accessibility. We, as professional developers, should take pause, as we often fail to do put in even minimal effort. We absolutely need to do better.

One final practice that I would like to mention is the idea of ‘Community accessibility’ as it is practiced on Tumblr. In this case, ‘community accessibility’ refers to the practice of individuals contributing their own time and ability to improve accessibility when the original creator is unable to. For example, someone with fatigue issues may need to create a long post but be unable to type. They can record a video of themselves and tag the post #accessibility request, in the hopes that one of their followers will add transcripts or captions to the post, which can then be shared with the video.

Another common practice is to add image descriptions to images, as Tumblr has never had proper alt text support. Tumblr’s reblogging system facilitates this kind of interaction in ways that other platforms do not, as another user’s image descriptions can be grouped with the original inaccessible image. Community accessibility improves the overall degree to which disabled users may participate in the community, without placing the burden on those disabled users themselves.

What would it look like if we encouraged and facilitated community accessibility when building our own platforms? Media-sharing platforms could allow users to submit accessibility requests for captions or alt text, or allow them to be added in later. (I can’t count the number of times that I’ve forgotten to add alt text to a tweet.) Platforms that facilitate meetups or review services could allow users to enter accessibility information, so that people who use wheelchairs won’t have to suffer the humiliation of turning up at an event only to find it completely inaccessible to them. At the very least, platforms could facilitate requests for accessibility information anonymously, as disabled users shouldn’t have to open themselves up to harassment from defensive event planners. The potential for improvement is limitless and we can do better at every step of the process, from idea conception to development.

In terms of tangible things that we can start to do, I have a few suggestions. For those of us in tech, we should reflect on the state of our projects, as SeriousEats has done in this thoughtful public blog post. For social media users, it may mean thinking about the ways we interact with social media (Tumblr or otherwise!), and committing to improving accessibility in the content we create. No matter what level of knowledge we have, above all we need to listen to and center the conversations that disabled people are having.

Building accessible platforms does not start when we begin designing user interfaces (UIs); we need to be thinking about this much earlier on in the process. Caring for the collective physical and mental health of our communities is integral to practicing disability justice. We cannot build platforms that are technically accessible but facilitate the harassment and ongoing traumatization of marginalized communities and then call our jobs done. The power of the internet is transformative, and when we make spaces inclusive, we change lives for the better.


  1. Thank you for your kind words ❤️

  2. This was such a great read (and a nice kick of nostalgia). Thank you for sharing it with us. Nic Nic

  3. a great read! would probably be useful to give a shout out to the New XKit project, as we’ve spent 5 years maintaining XKit and improving on it after the original creator left (longer then the original extension existed for!) Eric Bailey Nic Nic

  4. no problem! just something I thought of while reading the piece.

    one thing we’re all think about right now is the way the in progress Tumblr react rewrite, which has accessibility (in the wtag sense) as a major goal, makes user scripting much harder. Nic Nic

  5. Luckily, based on our feedback, they’ve taken some steps to address the issue, including providing a global css map that scripts can use to map from logical css class names to compiled ones. Nic Nic

  6. Good article! I got some nostalgia over missing E and stuff lol tumblr really shows how a community can make changes if only given a little leeway, I hope with the sale it doesn’t just get harder again Nic Nic

  7. I loved this post, thanks for writing! Nic Nic

  8. woooowwww

    This really resonated… Having really grown up on tumblr and learned a lot as an activist for and ally to so many communities; and seen all the highlights and shortcomings along the way. There’s no way I’d be working in Accessibility without tumblr.

    thanks for this. Nic Nic