Re: [fxtf-drafts] Not all Filters Should Lead to Containing Blocks on All Fixed/Absolute Descendants (#402)

This is the problem, in one sentence:

"Filters applied to non-root elements generate containing blocks that corrupt the intended position of fixed/absolute descendants."

How can this exact problem be addressed, in light of the W3C's priority of preventing z-order related side-effects? Please direct you wonder intelligence to solving this problem, now that you've proven the z-ordering problem.

I've got one idea. How about if the spec stipulated something like this:

"When a containing block, is generated by a filter, fixed and absolute descendant must NOT honor that containing block, they must instead honor the parent of that containing block, as it pertains to positioning and all rendering must be done to those descendants at that position, while honoring their z-order context at that position."

It seems like the filter could take into consideration a descendant's z-index and draw over it based on what's behind it at that position. Perhaps it is just too complicated, intensive and burdensome to achieve.

As is, the spec favors one side-effect's prevention while causing another. Surely, there is someone out there smart enough to change this spec to where both problems are solved? I usually have a pretty good instinct when it comes to deciding whether something is possible or not. To me, this seems possible, but its obviously very difficult (or intensive), else someone would have already figured it out by now.

I'm surprised that the spec would allow CSS to change the structure of a document in order to accomplish STYLE. From years ago, I remember that website [CSS Zen Garden](http://www.csszengarden.com/), where it showcased thousands of style sheets applied to the exact same HTML and I was amazed at all the completely different designs that could be achieved without modifying the HTML at all.

This problem (with filters) breaks the universality of style sheets. You can no long expect to control the position of descendants when a filter is applied to a non-root element.

The reason universality matters to me, is because I try to apply my own style sheets to all web pages using a Firefox plugin called [Dark Mode](https://addons.mozilla.org/en-US/firefox/addon/dark-mode-webextension/). Over the years, my eye's have gotten tired of read web pages with white backgrounds and black text. That extension does a great job most of the time. Here's how GitHub looks to me:
![GitHub](https://user-images.githubusercontent.com/151919/86556175-25a65700-bf18-11ea-8629-01801875e397.png)

But, on its filter-based themes (that use grayscale and invert), positioning gets mangled too often. I'll click a dialog that is suppose to pop up [dead center of the screen](https://stackoverflow.com/questions/62717289/), and instead I'll have to scroll up or down to see it.

Also, I have an application where I want my users to be able to change their theme, but I have to be very careful with filter based styling, else I'll end up corrupting the position of in-page dialogs.

-- 
GitHub Notification of comment by Lonniebiz
Please view or discuss this issue at https://github.com/w3c/fxtf-drafts/issues/402#issuecomment-654012640 using your GitHub account

Received on Monday, 6 July 2020 04:49:46 UTC