w3c / fxtf-drafts

Mirror of https://hg.fxtf.org/drafts
https://drafts.fxtf.org/
Other
68 stars 49 forks source link

[filter-effects-1] Elements with invalid filters #564

Open shallawa opened 4 days ago

shallawa commented 4 days ago

In https://drafts.fxtf.org/filter-effects/#FilterProperty, it is not clear what should happen if an invalid filter is applied to an element.

  1. Should the element be rendered without any filter?
  2. Should the rendering of the element be omitted entirely?
  3. Should the invalid filter be corrected so the element with a valid filter be displayed?

The browsers disagree in displaying this test case:

<style>
    svg {
        border: 1px red solid;
        width: 400px;
        height: 300px;
    }
    .box {
        width: 200px;
        height: 200px;
        background-color: green;
        margin: 20px;
    }
    .filtered-1 {
        filter: drop-shadow(10px 10px -4px #4444dd);
    }
    .filtered-2 {
        filter: url(#shadow);
    }
</style>
<body>
    <p>A div element with invalid CSS filter:</p>
    <div class="box filtered-1"></div>
    <p>A div element with invalid referenced SVG filter:</p>
    <div class="box filtered-2"></div>
    <p>A rect element with invalid SVG filter:</p>
    <svg>
        <filter id="shadow">
            <feDropShadow dx="10" dy="10" stdDeviation="-4" flood-color="#4444dd" />
        </filter>
        <rect width="200" height="200" style="fill:green; filter:url(#shadow);" />
    </svg>
</body>
  1. Safari does not display any SVG element with invalid SVG filter
  2. Chrome seems to correct the SVG filter and is able to display any element that references this SVG filter
  3. FireFox does no display any element with invalid SVG filters
shallawa commented 4 days ago

@annevk pointed out https://github.com/w3c/fxtf-drafts/issues/237#issuecomment-354621234 seems to discuss a subset of this issue.