I have come across a problem with Ajax Uploader that I am unable to find a viable solution for. It has to do with accessibility.
In order for users who are visually impaired to navigate a website, they must us a keyboard and NOT a mouse. The problem with this and Ajax Uploader is that when a browser like IE9 does not support HTML5. Ajax Uploader sets it to upload using Flash or Silverlight and Ajax Uploader by default applies a mask over the input button. This would be ok if the user could use a mouse but WCAG2.0 standards require that the entire site be navigable using only a keyboard, tabbing through elements.
Therefore, if a user navigates to the input button under the Flash/Silverlight mask using the keyboard. When said user hits the enter button, Ajax Uploader prompts the user with the UploadAddonWarningImage and this image, that covers the entire site, can only be dismissed using a mouse click event. You can see this behaviour on the Ajax Uploader sample sites using IE9 when tabbing.
This is not acceptable on WCAG2.0 sites like in my case for a Government of Canada site I am working on that requires a site layout of CLF2 or higher and WCAG2.0 standards.
For now, I have set the UploadAddonButtonMode to UploadAddonButtonMode.Warning and have replaced the UploadAddonWarningImage with a custom multi-language (English and French) image that recommends the user switch to a newer browser that supports HTML5 like Firefox, Chrome, or JAWS in the case of the visually impaired.
Of course, this solution is not ideal for a visually impaired user who can’t see the image and can’t have the browser read ALT text since Ajax Uploader does not set nor allows a customizable alternative text value for the UploadAddonWarningImage (customizability is important in my case since it needs to be in English and/or French depending on the user).
I am hoping for a better solution then the above. I would like to have the program dismiss the warning message with the keyboard enter key. BUT preferably, it would be ideal if the warning message wasn’t displayed at all and the program moved directly to the Flash/Silverlight upload window which is what happens when a user clicks on the warning message with the mouse.
EDIT – This is what the default warning message reads if you need to know, “File browsing dialog has been blocked. Please click here and try again”. The interesting thing about this message is that it opens up the upload window using flash or Silverlight once the user clicks the warning message with the mouse. Therefore, if I could just disable this message from popping up when using a keyboard everything would be working as needed. Is there some way to prevent this message from dispaying using Javascript or VB.NET? I know I can use the ButtonOnClickScript attribute but I do not think the warning message is displayed until after the ButtonOnClickScript is triggered.