Giter Site home page Giter Site logo

stone-harbor-game's Introduction

Stone Harbor

An interactive story by Liza Daly

Read online: Stone Harbor

A Portuguese translation has been kindly provided by José Carlos Dias.

4th place in the 2016 Interactive Fiction Competition

Stone Harbor cover

Stone Harbor is authored in Windrift, a framework for writing web-based interactive stories.

The story has been tested on all major modern browsers, and underwent additional evaluation by an accessibility expert. It has been verified to work with keyboard controls and with the following screenreaders: NVDA 2016.1 and Firefox 48.0.2 on Windows 7, (NVDA, JAWS 12) + (Firefox, Internet Explorer 11) on Windows, and Voiceover + Safari on iOS 10.

The game text and derived images are released under a Creative Commons Attribution 4.0 International License. The epilogue of the game includes credit for the original images, which are either public domain or CC-BY or CC-BY-NC.

Running locally

To set up a local copy of Stone Harbor, do the following:

npm install

To run it on a Mac or Unix-like environment, use the runserver.sh script:

bash runserver.sh

This will start up a small HTTP server with Python 3.

Now the story should be available as:

http://localhost:8000/

Running the translations

In the pt/ or es/ directory, follow the same steps. The runserver.sh script will run the translation on a different URL. (The language toggle in the upper right of the UI is only meant to work on the production site.)

stone-harbor-game's People

Contributors

lizadaly avatar dependabot[bot] avatar kakelp avatar ariasel-ctrl avatar albuquezi avatar neidotranslations avatar

Stargazers

Liam Gray avatar  avatar  avatar Marc-André Goyette avatar  avatar Rossi Meacham avatar  avatar

Watchers

 avatar James Cloos avatar Marc-André Goyette avatar  avatar  avatar

stone-harbor-game's Issues

Add textual descriptions reachable by screenreaders to background figures

"""
Keep it simple, going for what you were evoking in the text, avoiding text you describe in the story's text. "The large, empty courtyard of an immense house, in washed out sepia tones;" "an old-fashioned parlor, with overstuffed chairs and a vase of wilted flowers, in black and white;" "a sunny diner patio, in bright, over-saturated yellows, against a clear, bright blue sky." I'm not sure about all the color descriptions -- that's just my attempt to replicate in text what you've done with image. I suspect you can do better.
"""

Screenreaders need to know when text has been changed due to user events like selections

"""
So there's basically only one major bug that needs to be addressed: whenever any of the links are selected, the page updates silently, and it seems to have one of these 3 possible states:

  1. The current link vanishes, and one or more links appear shortly forward in the DOM, almost always after some more plain text.
  2. The current link changes and is replaced with another one under the focus.
  3. The current link vanishes, and some text in the immediate vicinity of the current link, sometimes including text which is before the current focus point, changes.

In a screen reader, when you select the link:

  • Voiceover on Safari on iOS starts to announce the new text and then interrupts itself, keeping the focus point the same
  • Both screen readers on Firefox stay silent, and keep the focus point the same
  • Both screen readers on Internet Explorer stay silent, and move the focus point to the beginning of the page. (I don't know Internet Explorer well enough to know whether that's expected behavior on IE, or a weird interaction with the React.)

Treating the HTML element which is going to be modified as a live region could be a good workaround. They aren't exactly live regions per se, because in general live regions update themselves, but it's close enough for government work. When I add "aria-live="polite"" into the DOM on the

containing the link and the React text section, that seems to solve both the problem of non-announcement, and of focus--I believe the live region moves the focus to the beginning of the newly changed chunk.

This guy inserted live regions with React - https://www.viget.com/articles/know-lupus-with-react - but it looks like it wasn't anything fancy. He just rendered a "return

." ("polite" should do it in this case, though.)
"""

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.