Hello everyone, there has been some talks about this behind the stage for a while, but I think that we need to have this discussion here at last and make a deicsion. We need a clear, concrete and enforcable policy about the use of client-side JavaScript in Horizon. The current guideline "it would be nice if it worked without JavaScript" doesn't really cut it, and due to it not being enforced, it's really uneven across the project.
This is going to be a difficult discussion, and it's likely to get very emotional. There are different groups of users and developers with different tasks and needs, and it may be hard to get everyone to agree on a single option. But I believe it will be beneficial for the project in the long run to have a clear policy on this. As I see it, we have basically three options about it. The two extreme approaches are the simplest: either require everything to work without JavaScript, or simply refuse to work with JavaScript disabled. The third option is in reality more like another three hundred options, because it would basically specify what absolutely has to work without JavaScript, and what is allowed to break. Personally I have no opinion about what would be best, but I do have a number of questions that I would like you to consider: 1. Are the users of Horizon likely to be in a situation, where they need to use JavaScript-less browser and it's not more convenient to use the command-line tools? 2. Are there users of Horizon who, for whatever reason (security, disability, weak hardware), prefer to use a browser with JavaScript disabled? 3. Designing for the web constrains the designs in certain ways. Are those constrains hurting us so much? Do you know any examples in Horizon right now that could be redesigned if we dropped the non-JavaScript requirements? 4. Some features are not as important as others. Some of them are nice to have, but not really necessary. Can you think about any parts of the Horizon user interface that are not really necessary without JavaScript? Do they have something in common? 5. Some features are absolutely necessary, even if we had to write a separate fallback view or render some things on the server side to support them without JavaScript. Can you think of any in Horizon right now? 6. How much more work it is to test if your code works without JavaScript? Is it easier or harder to debug when something goes wrong? Is it easier or harder to expand or modify existing code? 7. How would you test if the code conforms to the policy? Do you think it could be at least partially automated? How could we enforce the policy better? 8. How much more experience and knowledge is needed to create web pages that have proper graceful degradation? Is that a common skill? Is that skill worth having? 9. How much more work are we ready to put into supporting JavaScript-less browsers? Is that effort that could be spent on something else, or would it waste anyways? 10. How much do we need real-time updates on the web pages? What do we replace them with when no js is available -- static and outdated data, or not display that information at all? 11. If we revisit this policy next year, and decide that JavaScript can be a requirement after all, how much work would have been wasted? 12. Are we likely to have completely different designs if we require JavaScript? Is that a good or a bad thing? 13. Can we use any additional libraries, tools or techniques if we decide to require JavaScript? Are they really useful, are are they just toys? 14. How do we decide which features absolutely need to work without JavaScript, and which can break? 15. Should we display a warning to the user when JavaScript is disabled? Maybe be should do something else? If so, what? 16. If JavaScript is optional, would you create a single view and enhance it with JavaScript, or would you rather create a separate fallback view? What are the pros and cons of both approaches? How would you test them? 17. If we make JavaScript easier to use in Horizon, will it lead to it being used in unnecessary places and causing bloat? If so, what can be done to prevent that? 18. Will accessibility be worse? Can it be improved by using good practices? What would be needed for that to happen? You don't have to answer those questions -- they are just examples of the problems that we have to consider. Please think about it. There is no single best answer, but I'm sure we can create a policy that will make Horizon better in the long run. Thank you, -- Radomir Dopieralski _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev