I am of the opinion that we should make the keyboard definition format for the SOK a superset of the GOK format.  This way existing keyboard files could be used, but there would be more options for those that would like to embellish their keyboard with things such as color shaded keys.  The only detriment of this would be that the GOK would be likely unable to use SOK files, and I don't really see that as a bad thing.
<br><br><div><span class="gmail_quote">On 5/9/06, <b class="gmail_sendername">Henrik Nilsen Omma</b> &lt;<a href="mailto:henrik@ubuntu.com">henrik@ubuntu.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi everyone,<br><br><br>The application deadline for SoC students is nearing an end (though it<br>has been extended by Google by a day or so) and I'm pleased to see a<br>good number of applications for 2 of the 3 AT projects (nobody applied
<br>for the config panel, which can understandably seem boring).<br><br>I won't go so far as to post all the applications here ;) but I'll post<br>some more detailed thougths and invite discussion on the planned<br>features and roadmaps (yes, this is in part me being lazy and not
<br>wanting to have 12 identical email conversations fleshing out spec<br>details -- but I also think that an open process works better). I've<br>copied in the SOK applicants on Bcc. Feel free to jump in with comments<br>
and ideas or just hang back and read the suggestions. To sign up:<br><a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-accessibility">https://lists.ubuntu.com/mailman/listinfo/ubuntu-accessibility</a><br><br>The advantage in this open approach is that there are many people
<br>reading this list who know a great deal about accessibility and others<br>who know much about ubuntu and development. The spec ideas still need a<br>fair bit of fleshing out and input from experienced people. The sooner
<br>we start that process the better positioned we will be when it is time<br>to start coding. I'll be doing the same with the XGL-magnifier later.<br><br><br>The Simple On-screen Keyboard<br>--------------------------------------------------
<br><br>Let's start by dividing this up into milestones:<br><br>M0: Select The language and libraries we will use<br>&nbsp;&nbsp;* I'm leaning towards python with pyGTK, but I'd like to hear other<br>suggestions with reasons (where is python's xlib support, do we need it,
<br>can we use C for some aspects?).<br>&nbsp;&nbsp;* I want to look at rendering the keys directly with Cairo instead of<br>using a widget toolkit. That will give us more flexibility in the<br>display and make porting to other platforms easier (or?).
<br>&nbsp;&nbsp;* Make sure these have bindings we need, esp. to AT-SPI<br>&nbsp;&nbsp;* Decide on keyboard definition format. Can the existing GOK format be<br>used or do we need to extend it with additional features (regarding key<br>placement, colour, etc.)?
<br><br>M1: Proof of concept keyboard<br>&nbsp;&nbsp;* Make a 3-letter ABC keyboard that can pass keystrokes to the active<br>application<br>&nbsp;&nbsp;* Should be able to be always-on-top without being active<br>&nbsp;&nbsp;* Keys rendered in Cairo (if we go that way)
<br>&nbsp;&nbsp;* All settings are hard coded<br><br>M2: A full QWERTY keyboard read from a file<br>&nbsp;&nbsp;* Read a key layout from an XML file<br>&nbsp;&nbsp;* Support for modifier keys such (Shift, Ctrl, Alt), probably without<br>using Sticky Keys
<br><br>M3: General configuration handling<br>&nbsp;&nbsp;* Any configurations that that the user might want to make should be<br>sepparated out from the code and read from a file<br>&nbsp;&nbsp;* The scheme used should be compatible with the Common AT config approach
<br><br>M4: Plug-in framework<br>&nbsp;&nbsp;* The core idea of SOK is to keep it lean and simple, with extra<br>features added as plug-ins.<br>&nbsp;&nbsp;* Possible plug-ins might include: Word prediction, switch activation<br>support, X-10 home automation support, ...
<br><br>M5: Non-latin and Tablet PC support testing<br>&nbsp;&nbsp;* The keyboard should be unicode from the ground up, so this should<br>just work, but needs testing<br><br>Optional features:<br><br>I list these here partly as a braindump area for new ideas, but also to
<br>draw a clear line. These features will not be part of the initial<br>implementation (to keep it simple) and may only ever be implemented as<br>plug-ins.<br><br> * Transparency and animation - these are cool and potentially useful
<br>things, but clearly non-core<br> * Scriptability - Orca has shown us the advantage of adapting the AT<br>tools to different applications. That may well have benefits for SOK as<br>well.<br> * Word prediction - very useful but not everyone needs it. Should be
<br>implemented as a plug-in or separate utility. Some will want prediction<br>without an on-screen keyboard.<br> * Graphical layout generator - Many will appreciate the ability to make<br>their own layouts easily.<br> * Configuration GUI - Should be seen in context with other AT apps,
<br>ideally as part of the common config panel (still just in planning)<br><br>-----<br><br>Also, while I'm writing this, let me clear up a common misconception<br>that came up in the applications:<br><br>The main focus of this project is enhanced accessibility for disabled
<br>users. I mentioned tablet PC and multi-language input because I think it<br>is strategically wise to factor in these use cases. If we make a working<br>on-screen keyboard that can also be used in other ways we will get more
<br>testing and development. And if we don't then alternatives will<br>eventually appear anyway. When one of the big PC makers decides they<br>want to push tablet PCs for Linux they could either use our solution and<br>help improve it or build their own non-AT version, which would be a
<br>small tragedy.<br><br><br>After we get some feedback on this and nail down some ideas we should<br>flesh out the spec in the wiki:<br><a href="https://wiki.ubuntu.com/Accessibility/Specs/SOK">https://wiki.ubuntu.com/Accessibility/Specs/SOK
</a><br><br>- Henrik<br><br></blockquote></div><br>