Tuesday, November 1, 2011

Version 1.7 is here at last! Now with voice commands!

There have been three significant under-the-hood changes to the metalmouth extension - culminating in the new 1.7 release.

Firstly, the adoption of Google's implementation of the HTML Speech Input API into the Project metalmouth extension now allows certain function to be operated by voice commands! With greater exploitation of speech recognition planned in future releases - making metalmouth a true voice-browser...

Secondly, as the marvellous folks at Google have continued to improve their Chrome based text-to-speech engine chrome.tts it was the right time to re-integrate it into this extension. This has now been done... An options page has also been introduced, which will allow a user to fine-tune aspects of the text-to-speech engine, along with other metalmouth features in the pipe-line.

Thirdly, Google's awesome Closure Library has been embraced with a corresponding change to architecture - full use can now start to be made of Google's Closure Compiler. We can say that already the extension is 50% lighter (only 100K all in!), and it should be faster and more robust.

Feedback from users has to date been a little light. As always any feedback, on what you love, like or how to make the extension better, would be gratefully received.

The focus is now on SUPPORT - support for WAI-ARIA items and more HTML5 elements... It would, however, be really useful if there was a minimum level of support for WAI-ARIA and HTML5 that this project could strive to implement in order to feel justified to call metalmouth an assistive technology... any suggestions would be wonderful???

Wednesday, June 22, 2011

Version 1.6.0 (Major Upgrade)

Version 1.6.0 has just been released. A new method for moving around the page means that the code could be reduced by a quarter - with massively improved performance!

A number of control panel buttons have been removed as they proved unnecessary. Now a user can just arrow up and down to read the previous or next item, click the space bar to start and stop reading, use the right arrow to go back to the page top and the left arrow to cycle through the page headers - simple!

Take a look at the user guide for more details...


Visitors up...

After 10 days of being in the accessibility category nearly 4000 people have looked at the extension. Wow!!!

Wednesday, June 8, 2011

Project metalmouth featured in Accessibility category on the Chrome Web Store!

Hooray!!! Nearly 300 visitors looked at the Project metalmouth extension on its first day of being featured in the Accessibility category on the Chrome Web Store.


Wednesday, May 25, 2011

Project metalmouth (MAJOR UPGRADE) - Version 1.5.0

This week Project metalmouth release a MAJOR upgrade to its current
open source voice browser extension for Chrome.

With the release of 1.5.0 support for nearly 40 new off-screen model
items has been added including many based on new HTML 5 elements like
header, nav, footer, audio, video, etc and elements defined using wai-
aria. Also support of new HTML 5 input types like range has been
included.

The extension can be downloaded from the Project metalmouth web page
(https://chrome.google.com/webstore/detail/
bmogbhmnbehfapbmjlaoflagfobahfli) on Google's Chrome Web Store, or as
source code or a packaged .crx file from the Project metalmouth
website http://code.google.com/p/ metalmouth/.

Please take a look and give us your comments - it's open source, free,
constantly being improved and intended to benefit vision impaired and
keyboard users...

Wednesday, May 4, 2011

Version 1.4.4 now available!

The latest version (v1.4.4) of the Project metalmouth extension can now be installed for free from Project metalmouth extension page on the Chrome Web Store. You can, of course, still install the unpacked version from the source code on the Project metalmouth site.

Interactable off-screen model items are now identified with the word "interactable" - achieved via additional static text descriptions in the relevant off-screen model items.

When on a sub menu the user can now hold the "ESC" key for more than one second to bring focus to the close menu button - for situations where there were large numbers of selectable options.

The interaction area has been tidied, with a new item CP_InteractArea holding the event handlers for the "ESC" hotkey.

The UponDomChange function has been amended to improve performance.

Version 1.4.3 now available!

The latest version (v1.4.3) of the Project metalmouth extension can now be installed for free from Project metalmouth extension page on the Chrome Web Store. You can, of course, still install the unpacked version from the source code on the Project metalmouth site.

Support for two DOM change events (DOMNodeInserted and DOMNodeRemoved) has been
added. The off-screen model is now updated to reflect changes to the DOM caused by nodes being added or removed.

Single select menus are now forced to fire a change event when the value of the related select menu is altered through the Project metalmouth extension.

Minor changes to spoken values - "Go button" changed to "Go".

Friday, April 8, 2011

Project metalmouth extension available on Chrome Web Store!!!

Hooray! Great news!

The latest version (v1.4.2) of the Project metalmouth extension can now be installed for free from Project metalmouth extension page on the Chrome Web Store. You can, of course, still install the unpacked version from the source code on the Project metalmouth site.

Please, please, please install the extension, try it out and leave your comments / feedback either on the extension page, or on the Project metalmouth user feedback page.

As always, if you are using the extension or just like the intensions behind the project (I already like you and think your wonderful) I would ask you to get involved in the project (especially user testing, feature requests, etc...) - otherwise, maybe just providing a link to the project website (http://code.google.com/p/metalmouth/) so that others may more easily find it.

Thursday, March 31, 2011

License changed from GPLv3 to Apache 2.0

Version 1.3, and all future versions, of the Project metalmouth extension will now be licensed under an Apache 2.0 License.

This change has been made in order to clarify Project metalmouth's position with regard to accepting patches and contributions - hopefully making it as easy as possible!

Tuesday, March 29, 2011

What's coming next, and in what order...

A couple of days again I had a chance to bring together the "What's Coming Next" document for Project metalmouth. After completing the "Tidy up" part which, I'm sure, is a re-occuring activity in most projects it is now time to move on - in fact I called it "Moving toward a more complete off-screen model...".

However, the thought struck me today that it would be most useful to implement the next items in the off-screen model in a sequence which would benefit actual users the most - but how?

It will need a lot more thinking about...

As always, if you are using the extension or just like the intensions behind the project (I already like you and think your wonderful) I would ask you to get involved in the project (especially user testing, feature requests, etc...) - otherwise, maybe just providing a link to the project website (http://code.google.com/p/metalmouth/) so that others may more easily find it.

Thursday, March 3, 2011

Unstoppable META Re-direct

A frustrating day was spent yesterday trying to stop a page with a META tag (like the one show in the code below) from redirecting the Chrome browser to another location.

<meta equiv="Refresh" content="10; url=http://www.test.com">

With regard to Project metalmouth, the reasons for trying to stop the auto-redirect relate directly to user experience. What if a user is starting to listen to a page being read out, only to have the experience terminate abruptly and the same or another page start to be read out instead? If it were me I think I would be annoyed...

Unfortunately I have to report that all my efforts were in vain.

Apparently the redirect count-down starts as soon as the META element appears in the page, so removing it from the DOM or resetting its attribute values after page load does nothing.

I tried to inject an anonymous function to try and alter the contents of the HEAD element as the code loaded but to no useful effect. Injecting document.documentElement.firstChild.innerHTML = "" via an anonymous function in the page does have an effect - the redirect is stopped as two empty head elements appear and two body elements (one empty) - however, although this is interesting, it was not so useful as the page is effectively destroyed.

I went on to look at the possibility of providing a warning that the page was going to redirect... But, with regard to user experience I came to the conclusion that this would be just as bad - with the reasonable question "if the Project metalmouth extension knows the page is going to redirect why can't it prevent it?"

So, in the end I decided that the best possible solution for everyone might be if a user could elect to permanently stop all refreshes / redirects (via META elements) via a setting in the Chrome browser. With a bit more research, this apparently seems to be the approach other main stream browsers have adopted as well.

To this end I have added a post to an existing request for this functionality to the Chromium Project (http://code.google.com/p/chromium/issues/detail?id=63107) - so, let's keep our fingers crossed.

As always, if you are using the extension or just like the intensions behind the project (I already like you and think your wonderful) I would ask you to get involved in the project (especially user testing, feature requests, etc...) - otherwise, maybe just providing a link to the project website (http://code.google.com/p/metalmouth/) so that others may more easily find it.

Thursday, February 17, 2011

Attracting end users...

The initial Getting Started and User Guide documentation is now published (but incomplete / unpolished). So, it is now time to take a short while to concentrate on pulling together the marketing side of the project.

As stated:

"The aim of Project metalmouth is to develop a fully functioned (although initially basic) open source voice browser - which sits inside the Chrome browser as an extension. The ambition is to give users, who want to use this extension, the best possible user experience when interacting with the spoken web."

In order to reach anywhere near this ambition it is the end users who must now decide on what they want. The beta release which is now published has always been intended as a 'straw man' - providing something real for people so that they can state what they like and don't like. In this way the extension can be burned down and built back up to more accurately fulfil their needs.

Getting as many relevant end users as possible to feedback on the project is the key, and the focus of the current activity. Where a relevant end user of this project might be:
"Anyone, from any Country, who for one reason or another finds it necessary to have content spoken out to them to ensure their full interaction (via the Chrome browser) with the web".

As always, if you are using the extension or just like the intensions behind the project (I already like you and think your wonderful) I would ask you to get involved in the project (especially user testing, feature requests, etc...) - otherwise, maybe just providing a link to the project website (http://code.google.com/p/metalmouth/) so that others may more easily find it.

Wednesday, February 16, 2011

Project documentation...

Work was completed yesterday on supporting access to the Project metalmouth extension via the Chrome browser omnibox (where you enter the urls).

My worry had been about how a user would navigate to the voice browser extension - as Chrome browser is not self-voicing (and, without the need for an external screen-reader).

With omnibox support now implemented a user can launch Chrome browser (or open a new tab) - focus will go to the omnibox in both cases - and type "mm". The Project metalmouth extension will recognise this keyword and ask the user to "press the space bar then press enter". These two additional actions will start the extension, meaning a user needs only four key presses from launching Chrome to being able to surf the web via the extension.

So, the aim today is to improve the Getting Started and User Guide wiki pages for Project metalmouth - to reflect the work above.

As always, if you are using the extension or just like the intensions behind the project (I already like you and think your wonderful) I would ask you to get involved in the project (especially user testing, feature requests, etc...) - otherwise, maybe just providing a link to the project website (http://code.google.com/p/metalmouth/) so that others may more easily find it.

Project metalmouth launched...

This week saw the launch of Project metalmouth - a project I have been wanting to deliver to the widest possible community for ages.

If you don't already know, the aim of this project is to develop a fully functioned (although initially basic) open source voice browser - which sits inside the Chrome browser as an extension. The ambition is to give users, who want to use this extension, the best possible user experience when interacting with the spoken web.

Voice browsers are one type of assistive technology. They have a primary focus, unlike their more generalist bigger cousins 'screen-readers', on maximising a user's ability to interact with content or applications found on the web. Voice browsers typically speak out-loud web content, so users (via a keyboard) are able to interact with it without the actual need to see it.

Project metalmouth control panel

The project release is currently set at beta - version 1.1.1. With this extension a user can:
  1. Have their current page read out from the start - stopping, continuing or re-reading items at will (buttons 10, 11, 12 above).
  2. Navigate the page by items - all items, sections, links, skip links, forms (drop-down 4 above).
  3. Navigate a page one item at a time - read again, next, previous (buttons 5, 6, 7 above).
  4. Interact with items (and enter text) - skip links, links, text entry boxes, select drop-down menus, buttons, check buttons (button 8 above).
  5. Enter a new url, and undertake action 1 to 4 (text entry 1 above).
  6. Change the speed at which text is being read out-loud i.e. normal, fast, slow (drop-down 9 above).
  7. The extension can now be started from the omnibox (url area) in Chrome, by simply typing "mm" in the box then pressing the space bar and then pressing return. This is so a user needs only four key presses from launching Chrome to being able to surf the web via the extension.

My intention with this blog is to track the direction of work on this project, and as such provide an easier entry for anyone wishing to take part in the project.

Finally, if you are using the extension or just like the intensions behind the project (I already like you and think your wonderful) I would ask you to get involved in the project (especially user testing, feature requests, etc...) - otherwise, maybe just providing a link to the project website (http://code.google.com/p/metalmouth/) so that others may more easily find it.