Ainu/Keyboard
Existing Resources
Apple's OSX has keyboard support for Ainu, using dead keys as a solution for syllables with the same starting consonants. I could not find an Ainu keyboard layout for Windows, Android, or Linux.
Solution and Justification
I used Apple's dead keys system for Ainu but made some modifications along the way. The dead keys system works because many Ainu syllables start with the same consonant sound. For example, カ、キ、ク、ケ、コ all start with the consonant /k/, so each time the writer wants to write one of these characters, they must first press the "k" key. They then have 5 choices to create Ainu character: the "a" key (), "i" key (), "u" key (), "e" key (), and "o" key (). As such it does feel like the user must know some English orthography to type in Ainu, but it is trivial to replace the Latin letters physically on the keys with letters in the Ainu orthography (since Ainu does not traditionally have an orthography, Katakana is used). So if one wanted to write キ (/ki/), they would first press the key indicating they want a syllable starting with /k/: the "カ" key. Then they could select the key indicating they want the /i/ sound, the "イ" key, finally arriving at キ.
For the majority of Ainu speakers, who can also speak Japanese, this system may actually seem familiar. The smartphone Japanese flick keyboard has a similar design.
It was important to figure out how to handle the special characters in Ainu. Japanese has one special character, ん (/n/), that the romaji keyboard handles by having the user press the "n" key twice. In this vein, we can handle most of the final Ainu consonants: two "s" keys make a small "s" character, two "k"s make a small "k" character, and the same goes for "p" and "m", and "r". However, what happens when we want a small "r" character?
Another issue we must face is that Ainu has special Katakana characters for "-ar", "-ir", "-ur", "-er", and "-or". Consider the Ainu word "Yukar", (ユカㇻ). The user first types ユ with the /j/ key (i.e. "y"/ヤ key) and the "u" key, then types カ with the "カ" key and "ア" key. But now we have a problem. Should the user type the ㇻ ("-ar" sound) with the "a" (ア) key first? If so, they will have already created the character ア! So I am handling this temporarily by having ㇻ be the input "xar"/"xアラ" where "x" signifies "special small character" as it does in some Japanese keyboard layouts. The obvious shortcoming here is that we should not have to type three keys to get one character, no matter how uncommon it is, in this setup. Indeed, one of the major benefits to using dead keys is that we only need to use two keys to represent the entire range of Katakana letters.
The final issue I faced was deciding between different characters to represent certain syllables (e.g. both ウィ and ヰ can be used to signify the "wi" syllable). I haven't had chance to get a good picture of which of the characters is more common. I had no choice but to choose one for each pair, so I chose what looked more familiar to me, which seems to be valid according to Wikipedia, but I will make sure to reconsider this shortly.
Ideally this layout would have more logical placement of all of the major syllable-starter keys that wasn't derivative of the English keyboard. So although this may be beyond the scope of this initial assignment, I will keep it in mind.