- From: Simon Pieters <simonp@opera.com>
- Date: Fri, 17 Feb 2012 15:45:37 +0100
On Wed, 15 Feb 2012 19:42:39 +0100, Simon Pieters <simonp at opera.com> wrote: > I have changed the spec for hashless hex color and unitless length to be > closer to reality (I hope). I have limited the them to the properties in > CSS2.1 that have colors or lengths but aren't in the list above. I made > "support hashless hex colors" match IE instead of the other browsers, > since IE was stricter (even in compat view). I still haven't figured out > 'font', but I'll get to it. I did some quick and dirty research on dotnetdotcom's web200904 data, and based on my findings, I removed outline-color, background-position, border-spacing, bottom, font, max-height, max-width, min-height, min-width, text-indent and vertical-align from the spec. outline-color and font I found *no* occurrences that needed these quirks (although I didn't run through the whole file when searching for 'font'). For the others, I applied an arbitrary threshold of usage and made cut-off to make the list of properties a bit shorter. Now follows the scripts I used and some notes. $ grep -iaPo "([a-z]+-)?color\s*:\s*[0-9a-f]{3}([0-9a-f]{3})?(\s|\"|\'|;|$)" web200904 > color.txt >>> f = open('color.txt', 'r') >>> props = {} >>> for line in f: >>> prop = line.split(':')[0].rstrip().lower() >>> if prop in props: >>> props[prop] += 1 >>> else: >>> props[prop] = 1 >>>f.close() >>>for prop in props: >>> print prop + ':' + str(props[prop]) :28 border-color:2515 color:40731 backgound-color:1 backgroun-color:13 dshadow-color:1 nbackground-color:6 000000;:1 shadow-color:242 face-color:230 text-color:2 dlight-color:216 bottom-color:543 tbackground-color:1 highlight-color:239 arrow-color:228 right-color:326 top-color:304 track-color:272 left-color:330 background-color:8658 font-color:73 darkshadow-color:217 base-color:85 light-color:15 Obviously I made a mistake in the regexp and so e.g. border-right-color shows up as right-color. Other than typos and scrollbar-* properties, the ones that are used are the ones that are specced. In particular, outline-color did not show up at all. $ grep -iaPo "([a-z]+-)*(position|spacing|width|bottom|clip|size|height|left|right|top|bottom|margin|padding|indent|align|width|end|start|columns|border|shadow)\s*:\s*([1-9][0-9]*(\.[0-9]+)?|[0-9]?\.[0-9]+)(\s|\"|\'|;|$|\/|>)" web200904 > lengths.txt ^C >>> (see script in hex color quirk section) :315 x-start:2 3.00":1 pagging-left:8 min-height:38 border-top:842 v-text-spacing:1 2:1 scrollbar-size:2 line-width:1 24;:1 border-right:1100 columns:5 border-bottom:1725 border-spacing:7 21:1 shadow:3 text-align:8 1/:1 e-height:1 8.75":1 750:1 xxpadding-top:2 marging-bottom:2 line-spacing:7 x-archive-position:1 line-height:7209 5":1 font-size:35296 right:1226 cell-spacing:2 100:1 908:1 word-spacing:381 mso-columns:2 padding-top:8168 border-left-size:1 scrollbar-border:2 bottom:101 fp-font-size:362 mmargin-left:1 padding-right:9159 7:1 text-size:2 spacing:243 xxpadding-left:2 tab-width:8 max-width:285 30":1 paddin-top:1 content-size:1 border-right-width:1891 y-position:1 w:1 padding-left:16898 1.50":1 6':1 border-bottom-width:3505 height:31132 max-height:95 margin-right:8283 border-top-width:2438 size:5022 left-margin:1 start:49 bottom-margin:1 top:10483 border-width:5602 min-width:219 width:46530 background-position:135 border-left:887 padding:18278 2:1 border-height:31 5:1 margin:5331 border-left-width:2384 letter-spacing:874 vertical-align:47 clip:5 0.0:1 margin-left:11565 padding-bottom:5279 week-end:1 border:4664 end:68 installed-size:1 margin-bottom:11898 lin-height:12 102:1 4":1 nfont-size:10 z-position:1 text-indent:378 midlet-jar-size:1 one-day-left:1 margin-top:11393 position:80 left:9219 Forgot to include "-" before the number in the regex (e.g. text-indent accepts negative values). $ grep -iaPo "([a-z]+-)*(position|spacing|width|bottom|clip|size|height|left|right|top|bottom|margin|padding|indent|align|width|end|start|columns|border|shadow)\s*:\s*-([1-9][0-9]*(\.[0-9]+)?|[0-9]?\.[0-9]+)(\s|\"|\'|;|$|\/|>)" web200904 > negative-lengths.txt ^C >>> (see script in hex color quirk section) :1 letter-spacing:31 right:3 bottom:2 top:56 margin-right:4 padding-left:1 margin-bottom:33 word-spacing:1 margin-top:68 margin-left:61 padding-top:1 size:2 margin:6 left:16 'clip' $ grep -iaPo "clip\s*:\s*rect\([^\)]+\)" web200904 > clip.txt ^C Looks like 'clip' is used with and without commas, with and without units. 'font' $ grep -iaPo "font\s*:\s*[^;\}>]+" web200904 > font.txt ^C I appended a ";" after each line, removed all " and ' (which shouldn't affect the font-size thing) and put the whole thing in a ruleset and loaded it in a quirks mode doc vs a standards mode doc in Firefox to see what was logged to the error console. There were 120465 lines, supposedly 'font' declarations. 157+4+6+1+1+1 errors in the console in both quirks mode and standards mode. This means none of them had unitless font-size. Most common error seemed to be to omit the font-size and/or font-family. This may need more research, but maybe we don't need this quirk for 'font'. -- Simon Pieters Opera Software
Received on Friday, 17 February 2012 06:45:37 UTC