It seems that the leading space inside the element is <q>always preserved (although it is normalized to one space), while this does not apply to most built-in elements. For example, the following code ( jsFiddle ):
<br> a <q>test</q> b <a href=#>test</a> c
<br> a <q> test</q> b <a href=#> test</a> c
<br> a <q>test </q> b <a href=#>test </a> c
<br> a <q> test </q> b <a href=#> test </a> c
It is restored in all modern browsers that I tested (Chrome, FF and Edge):

The second and fourth lines are <q>displayed with the original spaces, but <a>not. Why is this?
EDIT: Adding the following CSS to the script above:
a::before, a::after {
content: '"';
}
Makes their visualization the same. So something seems to be related to the CSS selector ::before.