Accessibility

From VNDev Wiki
Revision as of 05:22, 19 December 2024 by Tale glider (talk | contribs) (discuss CTC, text animation, minigame difficulty levels, config profiles, +input-related-examples, +spacing when editing, +gap before nav)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Making a game accessible means ensuring that it is playable and enjoyable by people with a variety of disabilities or control preferences. A great many guides and sets of standards exist online to help you with this process. One such guide is Game Accessibility Guidelines.

Some features might automatically be provided by the visual novel engine but those vary between engines, and can't account for everything the game might do.

Common Accessibility Concerns

Vision

Stuff that can help players with low vision, color-blindness or no sight at all enjoy the games. Some of these might also apply to the game page.

  • Color should not be the only way that essential information is communicated.
  • Create a strong contrast between text and the background. Including on things like character names and clickable links.
  • Use a readable and accessible font and font size by default.
  • Provide customization features like allowing the player to change the font, color scheme and font size.
    • People with low vision might prefer higher contrast, but some types of dyslexia and sometimes autism might make lower contrast more readable for some people. So letting players choose should be better than forcing one option or the other on everyone.
    • When the user changes the font size, it might make sense to adjust the size of the textbox, but probably have maximum and minimum sizes for it. Button sizes could also be made to change with the font size.
    • If a piece of dialogue doesn't fit in the textbox, it might be useful to add a scrollbar. But if the text is very close to fitting (like one or two pixels) it might make more sense to just temporarily let the text go a tiny bit into the margins so that you don't get a scrollbar that will only go up or down a tiny fraction of a character's height.
  • Leave enough space between GUI that it's easy to see where one ends and another begins.
  • Make it reasonably easy to tell which visual elements are interactable. For buttons that might mean giving them a different border when hovered and a hover sound.
  • When adding UI sounds, consider making different sounds for different buttons so that players can tell them apart by their sounds.
  • Provide full voice acting or TTS voicing of text so that those who find reading difficult can listen instead. Both for dialogue, button text and things like the credits screen. Preferably also support screenreaders.
  • A CTC indicator might help players tell that the text is done appearing on the screen and that they can advance it when they're ready to move on.
  • Showing whether the dialogue or narration on screen has been shown before, such as by changing the appearance of the CTC indicator if it has. That way players who struggle reading can spend less time on re-reading lines they've already read.

Movement

  • Allow users the option to toggle flashing images or effects on or off in the settings.
  • Allow users to adjust the intensity or turn off camera shakes.
  • Making sure that moving images or videos do not flash more than three times a second.
  • If the game has a lot of looping animations going on, that might make it hard for some players to concentrate on the text they're trying to read, so they might want an option to turn off animation.
  • Allow players to change the text animation speed, and to toggle it on and off. Some players might benefit from seeing movement when text appears to help them see where the text is appearing and then read it. Others might prefer if the text just appears instantly. It might also make sense to have options for the player to choose which type of animation to use, such as whether to have the text appear "typed" or slide in or fade in or something else.
  • In games with an animated CTC indicator, allow players to toggle its animation on or off.

Mobility and Reaction Time

  • Allow users a way to continue through the game without playing minigames.
  • When using minigames, consider providing difficulty level options. Such as letting players disable the timer on timed challenges.
  • Allow remapping of controls.
  • Allow all functions to be accessed using either mouse, keyboard or controller, to the extent possible. This includes being able to interact with menus without using a mouse.
  • Provide alternatives for holding down buttons. For example, some games that use holding shift as a keyboard shortcut for skipping, they also usually allow it to be toggled on or off by tapping the tab key.
  • Allow players to enable and disable autoplay, and to change its speed and delay.
  • Make GUI elements big enough to be clicked or tapped on, or make it so that interactions with one element don't accidentally get picked up by another one. For example, although clicking or tapping on the background might trigger a "continue" action, doing it right outside a button probably shouldn't do that, since it's unclear if the user was trying to interact with the button or with the background.
  • Avoid placing buttons too close to the edges of the window, since someone reaching for them could accidentally click outside the game window. Accidentally clicking outside is mostly an issue for small buttons, but large buttons can have the same problem in reverse: users might end up interacting with them when trying to resize the window. This also applies on mobile, where the OS might put its own UI right outside the game window.
  • Include an option to add cooldowns to button presses so that players who struggle pressing buttons exactly once could press a button more than once and have it counted as a single press. This also applies to other types of input, such as scrolling, as some scroll wheels, or virtual ones such as on touchscreens, might scroll more than one step in response to a single movement.
  • Consider making minigames optional or providing an easy mode where they're less challenging.

Hearing

  • Provide subtitles or visual representations of sound effects and music changes.
  • Allow users to change the volume of different components (such as music, sound effects, and voice acting) independently of each other.
  • When voice acting conveys a character's mood in other ways than just through words, make the same information understandable from visual cues, such as expression changes.
  • If the game uses sound effects in stereo, it might be useful to provide an option to play them in mono so that players who hear better with one ear than the other can still hear them even if they were meant to sound like they were coming from the other ear's side.

Cognitive

  • Provide history and/or rollback options. This might help people who accidentally advance the dialogue before they meant to.
    • In long VNs, it might make sense to also provide a history-like feature that provides summaries of sections of the game. This can be helpful to people who struggle remembering things or for people who return to a game after a long time without playing it and want to refresh their memories before continuing.
  • Put icons on buttons so that people with dyslexia can see what they are without having to read them or rely on audio to tell them apart.
  • Use side images or highlight the speaking character: when there's several characters on screen and the only thing telling you who's speaking is a name, people might not know which name is which character. Mouth animations can also help with this.
  • Voice acting can also help with telling characters apart by giving them different voices. Even if it's just barks. But in some engines, where dialogue can automatically be read aloud by a TTS voice, barks might cause some text to not get read aloud. A solution can be to play them as sound effects instead of as voice lines.
  • While not knowing a particular language well isn't as such as disability, adding more languages to play can enable more people to play the game. And it's also possible to add variants of the same language, such as having a normal English version and an easier-to-read English version with simpler words and grammar.
  • The ability to save and load might be useful for people who could need to take a break in the middle of the game, including those without disabilities, especially in longer games.
    • It's probably a good idea to both have autosaves and manual saves. So the player can save the game when they want, but if they close it without saving they shouldn't lose all progress since their last manual save. Skipping can also help with that.
    • To make saves easier to tell apart, it might be useful to show screenshots on them.
    • Especially in games with branching, players may play it more times and want to speed up parts they've already seen in previous playthroughs. While saving and loading can help with that. Skipping would help with that too.
  • An option to highlight important words could be useful to make it easier for readers to see which information is more important.
  • Fonts and other formatting might also have an impact on how readable the text is to players with dyslexia. So customization might help them too.
  • If the game has a lot of looping animations going on, that might make it hard for some players to concentrate on the text they're trying to read, so they might want an option to turn off animation. (This is also mentioned in the movement section above.)
  • Include content warnings on the game page, and in the game, if relevant.
  • If the game contains non-essential scenes that some players might want to avoid due to gore or similar reasons, add a toggle for players to get the game to skip those scenes.
  • If the game contains sudden sounds or flashes or other jumpscares, probably provide an option to turn them of, at least if jumpscares aren't the reason people would want to play the game.

General

  • It could be nice to provide different configuration presets for common disabilities.
  • The Game Accessibility Guidelines (see external resources below) suggests allowing configuration to be saved into different profiles so that different players on the same computer can use different settings. It doesn't seem to go in detail about how to present them. One option could be to have a menu where, when the game starts it could ask players which profile to load, unless there's only one profile saved in which case it could use that one by default and let the player create more profiles from within an option menu and switch to them.
    • Apparently they also think profiles should transfer across devices by default. That seems like it would make sense for some devices but not others (for example, different settings might work better on different screens). It would also seem to introduce an online component which, if it isn't necessary for other stuff that the game needs to do, could add a lot of complexity that might even make the game harder to configure. It might make sense if the game is already using online services, such as for online achievement tracking, but if you're adding a service yourself, you could have to write a privacy policy that players would have to see and then choose whether or not to enable the service, and you'd probably want to present that policy in an accessible way.
    • You might be able to store the profiles in files that the player could manually move between devices, or if the configuration can be encoded in 10 bytes or less, find a way to convert it to and from text, such as something like base 64 but without characters that look similar to each other like the letter O and the number zero.
    • Savegames could also be linked to profiles, although it could make sense to make that optional in case two people who use the same device want play together at the same time and they just want to use profiles to switch control schemes depending on who is holding the controller.

External resources