Hi all, Sharing my I2S for review. Please have a look.
Thanks, Virali Contact emails [email protected]<mailto:[email protected]> Specification https://svgwg.org/svg2-draft/text.html#TextPathElement Summary This change adds support for the path attribute on the SVG <textPath> element, allowing authors to define text path geometry inline using SVG path data and reducing the need for separately defined <path> elements. <textPath> resolves its text path geometry using the following rules: 1. If both path and href are present, geometry is resolved from the path attribute. 2. If only the path attribute is present and parses successfully, the inline path definition is used. 3. If the path attribute is absent or fails to parse, and an href attribute is provided, the referenced <path> element is used as a fallback. 4. Existing href‑only behavior is preserved without change. This implementation follows the SVG 2 specification’s definition of the path attribute on <textPath>, and the resolution behavior is consistent with other browser engines, improving interoperability and standards compliance. Note: When both path and href are specified on <textPath>, path now takes precedence, per SVG 2 specification. Blink component Blink>SVG<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ESVG%22> Web Feature ID svg<https://webstatus.dev/features/svg> Motivation Before this change, Chromium required <textPath> to reference a separate <path> element via href in order to define text path geometry. While functional, this limitation diverged from the SVG 2 specification and from behavior in other browser engines that support inline path data via the path attribute. As a result, SVG content authored for cross‑browser compatibility frequently rendered incorrectly in Chromium or required duplicating path definitions solely to accommodate Chromium’s lack of support. Supporting the path attribute allows authors to define self‑contained text‑on‑path geometry directly on <textPath>, reducing DOM indirection and improving authoring ergonomics without changing existing href‑based behavior. This aligns Chromium’s behavior with the SVG specification and other engines, eliminates a known source of interoperability issues, and reduces the need for browser‑specific workarounds in real‑world SVG content. Initial public proposal No information provided TAG review Not requested. This change implements an existing SVG 2 feature and does not introduce new web‑exposed APIs or primitives. TAG review status Not applicable Risks Interoperability and Compatibility Behavior change risk: Previously, Chromium ignored the path attribute on <textPath> and always resolved text geometry via href. With this change, when both path and href are specified, the path attribute takes precedence, per the SVG 2 specification. As a result, some existing SVG content that relied on href may render differently post‑ship. This aligns Chromium with other browser engines and improves standards compliance. Mitigation: The feature is guarded by a Finch flag (SvgTextPathPathAttributeEnabled), which can be used as a kill‑switch if unexpected compatibility issues arise. Gecko: Shipped/Shipping ( https://bugzilla.mozilla.org/show_bug.cgi?id=1446617) WebKit: No signal ( https://github.com/WebKit/standards-positions/issues/606) Web developers: Positive One user has noted they are impacted by the CrBug. Other signals: Security This feature does not introduce new script‑accessible APIs, cross‑origin capabilities, or user‑exposed surface area. It enables use of inline SVG path data in a context that already accepts path geometry via referenced <path> elements. The same SVG path parsing and rendering logic already exercised by <path> elements is reused for the path attribute on <textPath>. No additional memory exposure, network access, or privilege changes are introduced. WebView application risks Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications? No. This change does not deprecate or modify existing APIs. It adds support for a previously unsupported SVG attribute and preserves existing href‑only behavior. Debuggability Issues related to this feature are debuggable using existing SVG and DOM inspection tools. The resolved path used by <textPath> can be inspected via the DOM and verified through rendered output. Invalid inline path values gracefully fall back to href, avoiding hard failures and making rendering issues visible rather than silent. No new debugging tooling is required. Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)? Yes Is this feature fully tested by web-platform-tests<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>? Yes https://wpt.fyi/results/svg/text/reftests/textpath-path-attr.svg https://wpt.fyi/results/svg/text/reftests/textpath-path-attr-invalid-path-fallback.svg https://wpt.fyi/results/svg/text/reftests/textpath-path-attr-precedence-over-href.svg Flag name on about://flags No information provided Finch feature name SvgTextPathPathAttributeEnabled Rollout plan Will ship enabled for all users Requires code in //chrome? False Tracking bug https://issues.chromium.org/issues/374010056 Estimated milestones Shipping on desktop 146 Shipping on Android 146 Shipping on WebView 146 Anticipated spec changes Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way). There is an open discussion in the SVG Working Group regarding validation requirements for the path attribute on <textPath>, specifically whether the entire path data must be valid in order for the attribute to be used: https://github.com/w3c/svgwg/issues/393 The current implementation follows the SVG 2 specification as written and aligns with existing behavior in other engines. If the resolution of this issue results in clarified or changed requirements around partial path validity, minor behavior adjustments may be required in the future. At present, no concrete spec changes have been adopted. Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5157546589552640?gate=6533295938600960 This intent message was generated by Chrome Platform Status<https://chromestatus.com/>. >From ><https://chromestatus.com/feature/5157546589552640/gate/6533295938600960/intent> -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/KUYP153MB1117D04BB5474CCF72F81DFAC199A%40KUYP153MB1117.APCP153.PROD.OUTLOOK.COM.
