[openstack-dev] [horizon] JavaScript use policy

Radomir Dopieralski openstack at sheep.art.pl
Mon Nov 25 16:31:33 UTC 2013


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



More information about the OpenStack-dev mailing list