svg
svg copied to clipboard
Use of deprecated xlink prefixed attributes (e.g. xlinkHref instead of href)
With SVG 2, the xlink:
namespace is not necessary and attributes using it are deprecated.
I expect Svg.Attributes
should reflect this change by, for example, exposing href
instead of xlinkHref
.
Ditto for xlinkActuate, xlinkHref, xlinkRole, xlinkShow, xlinkTitle, xlinkType.
Thanks for the issue! Make sure it satisfies this checklist. My human colleagues will appreciate it!
Here is what to expect next, and if anyone wants to comment, keep these things in mind.
I got a help with the elm-community that can help to walk around this problem. just take a look at the example https://ellie-app.com/dYMDfz5V4a1/1
I see the href
case, but can someone show that xlink:arcrole
is definitively now called arcrole
?
The broader claim here is that xlink
is not used at all, and I want to verify that before making the change. So far the data I have is:
- w3 says what's removed and deprecated!
-
mdn says
xlink:href
deprecated -
w3 says
xlink:href
deprecated - w3 does not clarify on deprecation
- peacememories on slack says that Safari only supports
xlink:href
at this time. They are using bothxlink:href
andhref
to be prepared in case browsers start droppingxlink
rather than just deprecating it.
So it does not seem like this change has actually fully happened yet.
Weighing in here too: I just tried removing a custom element in favor of pure Elm, and using dual href | xlink:href
does not work in Elm at the moment, because href
is a read-only property in Svg.use
and assigning it crashes at runtime.
Regarding browsers:
- Safari only supports
xlink:href
- Firefox supports both
- Chrome supports both
I haven't tested other browsers yet
Thanks to Ilias I found a workaround for the crash using VirtualDom.attribute
, so I am going to try and replace my custom element code.