Unread post
by Moonchild » 2014-10-21, 07:50
Example situation:
Firefox 28 supports features a, b, and c, but not d.
Pale Moon 25 supports features a, b, and d, but not c.
If a website with fine-grained UA checking finds "Firefox/28" in it, it assumes features present are a, b, and c, but not d, and serves page code relying on c and using a workaround for d. This will not render well in Pale Moon, because c is not supported, and the workaround for d might not work either because it could be mutually exclusive with actually having the feature.
If, instead, the website would use capabilities detection (e.g. using @supports in CSS), it will render correctly on both browsers, since it will find (a,b,c,!d) when Firefox users visit, and (a,b,!c,d) when Pale Moon users visit. No assuming needed, and the only time it would render incorrect would be if either browser lies about what it really supports.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite