Making Your Visual Novel Accessible
Tags: posts, from dreamwidth, accessibility, tutorial, visual novels,
There's a lot of general guides to accessibility in video games but they can be a bit overwhelming, and I haven't seen any focussing on the stuff that comes up with visual novels, and other games that primarily revolve around reading text, looking at images, and clicking buttons.
I'm not an accessibility expert, just a well meaning developer, and this post is kinda slapdash. Don't take anything I say as gospel, and if I've missed/misrepresented anything, please let me know!
General philosophy
No game can be accessible to literally everyone, the goal is to make the game as enjoyable and playable as possible for as many people as possible. And not just disabled people, accessibility features make games more fun for everyone. All options are accessibility options for someone, and there's no neat line between disabled players and everyone else. Making your game accessible is really just a specific facet of generally making your game good.The first priority is that it's playable at all. The second priority is that players get the full experience.
And I suppose the zeroeth priority is that if your game is intractably inaccessible in some way, then just make sure players can tell. That way they can move on to a game they can play, instead of paying/downloading and being disappointed.
For example: blind players can only understand information provided in images if an alternate description is added.
If your 'start' button uses an image with no description, blind players literally cannot start your game. If your backgrounds don't have descriptions, they can play your game but will miss out on the environmental storytelling.
So, if possible, you should have image descriptions for all visual elements. But if you just focus on vital things like user interface elements then that's better than nothing. And if you are unable or unwilling to make your game playable for visually impaired players, make that clear on the game page.
General Accessibility Guides and Tools:
- Game Accessibility Guidelines These are nicely organised and very much worth checking out!
- Coblis—Color Blindness Simulator
Basics
These are things you should always try to include in your visual novel.- Skip: Fast forwards through text, generally has the option to only skip text the player has already seen. Useful for games with repeated sections that a player is likely to see more than once. Those of us who experience pain from too much clicking need this feature more than most, but it's useful for basically everyone.
- Autoplay: Advances the text automatically after a pause. Many players, myself included, can manage the occasional click but will experience pain or frustration if we have to click constantly to advance the text.
- Self Voicing: The game interfaces with the player's computer's text to speech function to read out the text of the game and add extra descriptions of visual elements. Helps visually impaired players. Included in Ren'py by default, for other engines you may have to just output the text to the clipboard and let the player handle it. Make sure you include any important text or other information shown as images.
- Keyboard navigation: Some players can only use keyboard controls, so make sure your game doesn't unnecessarily assume the ability to use a mouse.
- Large text size: Either have all text large by default, or give the option to change to larger text. If you have multiple text sizes, make sure the game actually works with all of them.
- Key Remapping: Players can change which keys have what effect. This comes up as important in a lot of accessibility guides and I have to be honest: I've never figured out how to make it work. As far as I can tell it's less important for games where players don't have to react quickly, but it's still better to offer if you can.
- Simple, easy to understand language and user interface: This is good for everyone, but especially players with cognitive issues.
- Don't rely on sound: Make sure all dialogue has subtitles, and any important sounds have text descriptions.
Readability
Playing a visual novel is mostly reading text, so you should make that as easy for the player as possible. Even people with perfect vision will get annoyed if they have to read lots of hard to read text.By default, you should use relatively large text in a simple font against a contrasting colour. This applies to the main text as well as the user interface, and any important in-game text like letters.
You can test if something is colourblind friendly by looking at it in black and white and making sure everything is still readable.
If you want, you can offer different fonts, text sizes, text box opacity, and colour options, but this requires a little extra work.
Audibility
I don't use a lot of sound in my games so haven't looked into this very hard myself. But if you have a combination of music, sound effects, dialogue etc, it's good to make sure anything containing information is clear, and to let the player change the volumes or turn the sound off separately in case they have issues processing too much sound at once, or find certain sounds difficult to deal with, etc.Described images and music
Beyond the basic text of the game, visual novels by definition have a visual element, and often also include sounds and music.It's vital to add descriptions to those parts that are core features of the game, such as user interface elements and the keys to puzzles etc. But it also adds a lot to the player's experience to generally know what things look like and how they sound.
Non-standard visual novel elements
I'm not going to go into all the many different sorts of non-standard mini-games and mechanics that show up in visual novels. But in general, if your game requires any skill beyond reading text and clicking buttons at your own pace, some players who are fine with typical VNs may find your game difficult or impossible.One of the most common issues is with timed sections or actions which require fast reaction speeds, even those that seem generous/easy to able bodied people.
The easiest way around this is to make these parts skippable/avoidable. Have an option in the menu to remove time limits on making choices, for example, or have a "skip minigame" button. Otherwise, check out Game Accessibility Guidelines for general suggestions on making various game mechanics accessible.
And once again, if you can't make it accessible, at least let players know what they're getting into.
This all helps not only disabled players, but also those who simply find such mechanics irritating, which may be more players than you think.
Ren'py Accessibility Features and Tools
I make my games in the visual novel engine Ren'py. It has a lot of accessibility features included as standard, like self voicing and autoplay. As far as I can tell it's harder, but not impossible, to include these features in games made in Unity etc, but it's not something I'm personally familiar with. I wrote this all based on Ren'py 7.4.10, later versions may be different.Although Renpy's accessibility features are included automatically, it's worth making sure they function well with your game in particular.
Key Remapping: Not automatically included, and I have yet to figure out how to make it work :(
Autoplay and skip: Automatically included. Just don't remove them from the menu!!
Keyboard navigation: Automatically included, but can be broken by minigames etc if you're not careful.
Sound options: Sounds are divided into music, sound effects, and voice, with separate channels and volume controls. So make sure to declare your sounds as the right type.
Self Voicing: The player's computer reads out the text of the game. Enabled by pressing 'v'. This works well with normal buttons and dialogue etc but can go weird with things like screens and tables of data. Has the option to add extra descriptions that only show up when self voicing is enabled, which is vitally important for any text/information shown as images.
Accessibility menu: opened by pressing 'a'. This menu is functional but ugly, so a lot of devs prefer to create their own prettier versions of these options in the preferences menu.
- Font Override: Can go weird if you've built your game around an unusually shaped font, so check to make sure it works.
- Text size and line spacing: these don't automatically scale the text box/menus etc, so the game very easily becomes unreadable after any significant change. Here's how I implement text size options in my own games.
- High contrast text: Effective for colourblind etc players, but super ugly!
- Self voicing: I don't know anything useful about these options.
- Self Voicing Drop: I have no idea what this does!
Ren'py Accessibility Tools:
- Caption Tool for Ren'py: makes it easier to do image and sound captions.
- Ren'Py Accessibility Add-On A prettier version of the in-built accessibility menu, plus a text box opacity option. Note: The text size options are limited, and accessibility guidelines generally discourage separating accessibility options from other preferences like this.
- Ren'Py All-In-One GUI Template: Combines a wide variety of tools into a single package, including the two above.
Accessibility Tools And Features In Other Engines
Note that I haven't tested these myself. More suggestions appreciated!
- UI Accessibility Plugin (UAP) A free Unity plugin to make your project compatible with screen readers
- Improving Accessibility in Unity Games – Part 1
Little Tips and Tricks
- Names like "???" sound awkward with screenreaders, so it's better to use a specific name like "Strange voice" if you can.