I'm not sure I'm asking this question in the right place ,but I'm a bit surprised by how very limited the CSS allowlist is (I'm working from this document). In particular, I'm unable to use any modern layout engines (flex, grid, or multicol). I can't think why these limitations would be desirable, in particular since, with inlining required, the absence of media queries guarantees that any moderately complex layouts will be broken on some screens. Are there any thoughts about expanding the list of permissible CSS rules in the style attribute? Even better would be permission to write some CSS as an instructor (if I'm understanding correctly, only admins currently have this ability).
THanks for any help you can give!
Solved! Go to Solution.
I suspect that part of the reason Canvas makes it so difficult to do things is to keep instructors from going off on their own and implementing things (think about the blink element that is not deprecated, but some used to think it was "cool" without understanding the ramifications). Some of the things that people want to do could harm accessibility or be detrimental to learning.
By limiting what people can do to the pages, it helps Canvas maintain a cohesive look and feel, which helps students. There are some times it would be much easier for me to add a single class to a table rather than having to style each cell separately.
I think another original reason was that it limited the amount that they had to support. As you said, CSS has come a long way and they don't have to support Internet Explorer anymore, either. Previously, they would need to make sure that things rendered reasonably the same in all the browsers. That is not as much of an issue as it once was.
Inline CSS also breaks the notion that you should separate style from content, but I'm not sure which side that comes down on. It could be that Canvas not allowing things helps separate the content from style, but it could be that by forcing us to put in CSS, it breaks that concept.
The current solution is to work with your institution (designers / admin) and come up with a shared CSS that incorporates classes. Then it can be maintained in one place for the whole institution, rather than having to deal with it for multiple instructors and pages.
There is an idea for having course-level CSS that you might want to visit and share your thoughts.