OK, então eu não estou totalmente certo ainda qual das duas representações está correta, mas eu suspeito que é o exibido pelos navegadores da web, porque eu descobri erros que afetam o comportamento no meu exemplo em ambos Inkscape e Eye of GNOME (veja abaixo).
Eu tenho descoberto o motivo de como eu estava ciente desse problema: O arquivo SVG que eu tinha aberto com o Inkscape tinha um <linearGradient>
com os atributos gradientUnits="userSpaceOnUse"
e x2="1"
(como no meu exemplo). Ao salvar como "SVG otimizado", o Inkscape "otimizou" o atributo x2="1"
porque interpretou isso como equivalente a x2="100%"
, que é o padrão para o atributo x2
conforme especificado pelo padrão SVG e, portanto, pode ser omitido. No entanto , a interpretação do Inkscape de x2="100%"
⇔ x2="1"
é (provavelmente) incorreta - isso é Inkscape bug # 1153706 .
Em minha pesquisa sobre esse problema, encontrei várias inconsistências sobre como diferentes softwares lidam com gradientUnits="userSpaceOnUse"
em combinação com os atributos de vetor de gradiente x1
, x2
, y1
e y2
. A seguir, relatos de bugs que já existiam ou que eu arquivei como resultado de minhas descobertas:
- Inkscape - bug # 1153706: “gradientUnits userSpaceOnUse usando viewport errado”
- scour - erro # 66: “Gradiente no caminho de recorte perdido ao otimizar com a limpeza”
- librsvg (usado pelo software GNOME como o Eye of GNOME ou o GIMP) - erro # 778187: “SVG: property x2 em gradientes manipulados incorretamente com gradientUnits="userSpaceOnUse" ”
- ImageMagick - “gradientUnits=" userSpaceOnUse "processado incorretamente" (parece que o ImageMagick nem tem um verdadeiro rastreador de bugs ...)