So I'm looking for advice on adding accessibility features to Twine. These include
* Ability to tab through paragraphs (for those with movement impairment)
* Ability to navigate content using VoiceOver (for those who are blind)
Thus far I've found Harlowe unusable for the second, because links aren't using the link tag (a) which means that structural readers cannot detect it's a link, and thus offer no way to activate it.
SugarCube is very nice, but a mess when it comes to tabbing because it doesn't use paragraph tags (p). Also the dialogs it creates are not friendly to structural readers.
Snowman I've been able to handle due to its event structure and clean HTML, but without lots of hacking on the previous two, I can't use them (and if people use them they alienate the blind and the movement-impaired). I don't know if this is something that we care about, but I hope that we do.
In any case, here's what I've done to have Snowman able to handle both cases mentioned above:
$(function() {
var $pass = $("#passage");
$pass.children().attr('tabIndex', '0');
$pass.children().first().focus();
$(window).on("showpassage:after", function() {
$pass.children().attr('tabIndex', '0');
$pass.children().first().focus();
});
});
I will probably add more as things continue, but if anyone has advice on what to do with the other story formats, that would be great.
(And I've added a little code to have Snowman checkpoint after every link click, but obviously that varies from story to story as to whether one would want to do that.)
Comments
Although SugarCube does not automatically add paragraph tags to passage contents there is nothing stopping story Authors from doing it themselves if they wish to.
I'm unfamiliar with the term "structural readers", though.
I tear my hair out.
See the announcement in the SugarCube releases thread.