2007-08-09 14:36 Ben 'Cerbera' Millard would you help analyse a data table I've found? 2007-08-09 14:36 zcorpan sure 2007-08-09 14:36 Ben 'Cerbera' Millard http://aa.usno.navy.mil/data/docs/EarthSeasons.html - it's done as ASCII text; I'm making an HTML version of it 2007-08-09 14:36 Ben 'Cerbera' Millard to simulate what they might do if they did so 2007-08-09 14:37 Ben 'Cerbera' Millard http://sitesurgeon.co.uk/tables/astro/06-seasons/ - my progress so far. it seems too irregular to express without headers+id 2007-08-09 14:38 Ben 'Cerbera' Millard I thought scope="colgroup rowgroup" or something might work, but the second equinox and second soltice in each year are hard to associate the right headers to 2007-08-09 14:38 Ben 'Cerbera' Millard (I realise that's currently non-conforming, btw) 2007-08-09 14:38 zcorpan i don't quite get the table 2007-08-09 14:39 zcorpan why are the years mentioned twice 2007-08-09 14:39 zcorpan ? 2007-08-09 14:39 Ben 'Cerbera' Millard it's an irregular layout, presumable to save vertical space 2007-08-09 14:40 Ben 'Cerbera' Millard the Perhihelion and Aphelion events are in the left third. the first and second Equinox and Solstice are the in final two thirds 2007-08-09 14:40 Ben 'Cerbera' Millard guess they wanted a year with each type of event 2007-08-09 14:40 zcorpan yeah, ok 2007-08-09 14:42 zcorpan i think this table should be able to work with just scope=row on the 5th column if the auto algorithm is improved 2007-08-09 14:42 Ben 'Cerbera' Millard scope=row would subtract the headers to the left of it? 2007-08-09 14:43 zcorpan no 2007-08-09 14:43 zcorpan but you'd want it to cover the last three columns too 2007-08-09 14:44 zcorpan Equinoxes is associated with 20, 08, 48 and 22, 18, 43, right 2007-08-09 14:44 Ben 'Cerbera' Millard yes 2007-08-09 14:46 zcorpan so if we start with a data cell and go leftwards until we hit a TH, associate it with the cell, then continue to the left and associate each TH with the cell, until we hit a TD again, in which case we only associate further THs on the left that have scope=row 2007-08-09 14:46 zcorpan unless those THs have scope=col or something 2007-08-09 14:46 zcorpan pretty much like html4 suggests 2007-08-09 14:46 zcorpan and then similarly upwards 2007-08-09 14:47 Ben 'Cerbera' Millard I see 2007-08-09 14:48 Ben 'Cerbera' Millard so you think of the table more in terms of cell to headers than header to cells? 2007-08-09 14:50 zcorpan dunno, it can probably be described equivalently the other way around 2007-08-09 14:50 Ben 'Cerbera' Millard hmm, I think you're right actually. Perihelion gets associated with all cells to its right until you hit . 2007-08-09 14:51 Ben 'Cerbera' Millard (Equinoxes) gets associated will all cells to its right 2007-08-09 14:51 zcorpan yeah 2007-08-09 14:52 Ben 'Cerbera' Millard the "Mar" would be a and would get associated with all s to its right, stop at the next 2007-08-09 14:52 zcorpan yeah 2007-08-09 14:53 Ben 'Cerbera' Millard and then Sept gets the last three (adding to Equinoxes) 2007-08-09 14:53 zcorpan yep 2007-08-09 14:54 Ben 'Cerbera' Millard 1992 gets associated with the s below it, stopping at the next 2007-08-09 14:54 zcorpan then the algorithm needs to integrate with colgroup, rowgroup and headers="" as well 2007-08-09 14:54 zcorpan and that needs to get specced 2007-08-09 14:58 Ben 'Cerbera' Millard http://www.guidebookgallery.org/icons/components - heirarchical row headers (aka nested row headers) have given me some headaches 2007-08-09 14:58 Ben 'Cerbera' Millard if scope="rowgroup" is used on "Applications", that would stop it at "Settings" 2007-08-09 14:59 Ben 'Cerbera' Millard but what about "Office", "Multimedia", "Networking" and "Internet" 2007-08-09 14:59 Ben 'Cerbera' Millard (Settings would also use scope="rowgroup") 2007-08-09 15:00 zcorpan yeah... html doesn't support that case 2007-08-09 15:00 zcorpan you'd need to put "Office" as a colspanning cell to the left of which is supposed to apply 2007-08-09 15:01 Ben 'Cerbera' Millard rowspanning? 2007-08-09 15:01 zcorpan yeah 2007-08-09 15:02 Ben 'Cerbera' Millard yeah, that's what I thought. you need an empty on the first row of a group like that, so it stays alongside that row of data 2007-08-09 15:02 Ben 'Cerbera' Millard Officedata Notepaddata 2007-08-09 15:02 Ben 'Cerbera' Millard I think 2007-08-09 15:03 zcorpan yeah, probably [...] 2007-08-10 11:19 Ben 'Cerbera' Millard when we were talking tables yesterday, add together for the final . but in , the second replaces the first for the final ? 2007-08-10 11:19 Ben 'Cerbera' Millard (and similar for the vertical axis) 2007-08-10 11:19 zcorpan yes 2007-08-10 11:20 Ben 'Cerbera' Millard http://sitesurgeon.co.uk/tables/astro/06-seasons/scope-auto.html - so what happens with the "1992" and "1993" headers? 2007-08-10 11:20 Ben 'Cerbera' Millard won't 1993 events get a 1992 header as well? 2007-08-10 11:22 zcorpan no, you don't associate headers with headers 2007-08-10 11:22 Ben 'Cerbera' Millard oh 2007-08-10 11:23 zcorpan which is a bit of an issue because sometimes headers have headers 2007-08-10 11:23 Ben 'Cerbera' Millard yeah 2007-08-10 11:23 Ben 'Cerbera' Millard in the example table, each data cell has 4 headers, by my count: 2007-08-10 11:24 Ben 'Cerbera' Millard 1. Unit of time (d, h or m) 2. Month 3. Event type (Perihelion, Aphelion, Equinox, Solstice) 4. Year 2007-08-10 11:24 zcorpan yeah 2007-08-10 11:25 zcorpan with that table the year isn't associated with the relevant cells 2007-08-10 11:25 zcorpan you need it to rowspan probably 2007-08-10 11:26 Ben 'Cerbera' Millard what if it had colspan to be above the relevant cells? 2007-08-10 11:26 Ben 'Cerbera' Millard oh, then the unit of time gets blocked? 2007-08-10 11:26 zcorpan i mean colspan 2007-08-10 11:27 zcorpan i always mix them up :( 2007-08-10 11:27 Ben 'Cerbera' Millard no worries :) 2007-08-10 11:27 Ben 'Cerbera' Millard won't that block the unit of time from getting all the way down the table? 2007-08-10 11:29 zcorpan good point. either s in need to imply scope=col or you need to declare it explicitly 2007-08-10 11:29 zcorpan thinking about it, implying scope=col for s in wouldn't be a bad idea 2007-08-10 11:30 Ben 'Cerbera' Millard sometimes the main headers are repeated in the table, lower down 2007-08-10 11:30 Ben 'Cerbera' Millard I'm not sure if allowing multiple is feasible? authors aren't doing it, afaict 2007-08-10 11:30 zcorpan no, and it won't have the right presentation 2007-08-10 11:31 zcorpan 'table-header-row's are always at the top 2007-08-10 11:31 Ben 'Cerbera' Millard ah 2007-08-10 11:32 zcorpan i think repeating headers in a big table is a presentation issue, actually 2007-08-10 11:32 Ben 'Cerbera' Millard http://www.moneyextra.com/stocks/ftse100/ - here's a good example of the complete headers being repeated lower down 2007-08-10 11:32 Ben 'Cerbera' Millard we should probably try to support existing content (as well), though 2007-08-10 11:32 zcorpan yeah, i don't see any reason why that table wouldn't work 2007-08-10 11:34 Ben 'Cerbera' Millard it's not doing this, but if the main headers were in and you implied scope=col for them, it wouldn't work? 2007-08-10 11:34 zcorpan hmm, then perhaps you would hear the same header twice, indeed 2007-08-10 11:35 Ben 'Cerbera' Millard yeah...I'm not sure if authors are doing that, to be fair :) 2007-08-10 11:35 zcorpan this would need some research 2007-08-10 11:35 zcorpan which approach would have the intended result in most cases 2007-08-10 11:36 Ben 'Cerbera' Millard if the screen reader people get involved, they might have useful experience of attempts to infer heading relationships in the absence of explicit association 2007-08-10 11:37 zcorpan i'm not holding my breath 2007-08-10 11:39 Ben 'Cerbera' Millard in the Yahoo! presentation with Doug Geoffrey of Window-Eyes, he said they were involved with Microsoft to develop access standards in Windows 2007-08-10 11:39 Ben 'Cerbera' Millard do they hate W3C or something? 2007-08-10 11:39 zcorpan dunno 2007-08-10 11:39 zcorpan the web is not their top priority 2007-08-10 11:39 Ben 'Cerbera' Millard well, that I can understand 2007-08-10 11:39 zcorpan yeah 2007-08-10 11:40 Ben 'Cerbera' Millard then again, they all seem to care enough to have websites :) 2007-08-10 11:40 zcorpan who doesn't have a website? :) 2007-08-10 11:41 Ben 'Cerbera' Millard true :P 2007-08-10 11:41 Ben 'Cerbera' Millard I guess it's WAI's responsibility to get ATs on board, not HTMLWG Participants 2007-08-10 11:42 zcorpan yeah, or the w3c staff or something 2007-08-10 11:47 Ben 'Cerbera' Millard http://sitesurgeon.co.uk/tables/astro/06-seasons/scope-colspan-auto.html - this looks like it would work now 2007-08-10 11:49 zcorpan yeah 2007-08-10 11:49 zcorpan now we need to forward the algorithm we have in our heads to the working group 2007-08-10 11:49 zcorpan :) 2007-08-10 11:50 Ben 'Cerbera' Millard is it just us, or have you been developing this with other people? 2007-08-10 11:51 zcorpan it's actually in the html4 spec (but very vague) 2007-08-10 11:52 Ben 'Cerbera' Millard yeah, I know that one but I think what we're discussing differs from it 2007-08-10 11:52 Ben 'Cerbera' Millard in the way scope works 2007-08-10 11:53 zcorpan true 2007-08-10 11:53 zcorpan no, i haven't really discussed it much with others 2007-08-10 11:53 Ben 'Cerbera' Millard ok, let me refresh my memory of it 2007-08-10 11:54 Ben 'Cerbera' Millard "The search in a given direction stops when the edge of the table is reached or when a data cell is found after a header cell." that's a key part of what we've discussed 2007-08-10 11:54 Ben 'Cerbera' Millard that lets you imply groups in a table without or 2007-08-10 11:55 zcorpan yup 2007-08-10 11:55 Ben 'Cerbera' Millard "If a header cell has the headers attribute set [...] the search stops for the current direction." that's similar to how we want scope to work, but value-sensitively? 2007-08-10 11:57 zcorpan not sure we want precense of scope to stop the search 2007-08-10 11:57 zcorpan presence 2007-08-10 12:02 Ben 'Cerbera' Millard if it has a certain value and the search is in a certain direction, I thought we wanted it to stop that direction? namely, the value "row" when the search is going left? 2007-08-10 12:03 zcorpan why? 2007-08-10 12:04 zcorpan in the tables we were looking at, the next cell to the left was a TD anyway 2007-08-10 12:04 Ben 'Cerbera' Millard oh yeah, so it was! 2007-08-10 12:05 Ben 'Cerbera' Millard in that case, I think there's a different problem 2007-08-10 12:06 Ben 'Cerbera' Millard http://sitesurgeon.local/tables/astro/06-seasons/scope-colspan-auto.html - in the Sept Equinox for 1992, the search needs to continue left after it reaches "48" after finding "Sept" until it finds "Equinoxes? 2007-08-10 12:06 Ben 'Cerbera' Millard so the search stopped for plain but continued for ? 2007-08-10 12:07 Ben 'Cerbera' Millard * "Equinoxes" 2007-08-10 12:08 zcorpan the search needs to continue, but we need a state or flag to not associate the "Mar" TH with the "22" TD after we have gone past "Sept" (we still need to find "Equinoxes" because it has scope=row) 2007-08-10 12:09 Ben 'Cerbera' Millard exactly 2007-08-10 12:10 Ben 'Cerbera' Millard and something similar for vertical 2007-08-10 12:10 zcorpan yeah 2007-08-10 12:11 Ben 'Cerbera' Millard so 1992 doesn't get associated with the "4" below "1993" but the "d" way above it does, since it has scope=col 2007-08-10 12:12 zcorpan yes 2007-08-13 15:47 Ben 'Cerbera' Millard http://sitesurgeon.co.uk/tables/thatcher/01-water/minimal.html - a case where blocks the previous but must still get through 2007-08-13 15:49 zcorpan yep... implying scope=col for s in would make that table work as intended 2007-08-13 15:50 zcorpan semantically, i think using means that the header cells in it are intended to apply to all tbodies and thus as if scope=col was specified 2007-08-13 15:51 zcorpan (but still we might need some data about the tradeoff for doing so) 2007-08-13 15:52 Ben 'Cerbera' Millard is logically expanded as "table header" 2007-08-13 15:53 Ben 'Cerbera' Millard so "the headers for the whole table" seems a logical definition 2007-08-13 15:53 Ben 'Cerbera' Millard as there can only be 1 section, that further implies that anything in it will apply to the whole thing 2007-08-13 15:56 zcorpan yeah 2007-08-13 15:56 Ben 'Cerbera' Millard should the apply to the ? 2007-08-13 15:57 zcorpan yes 2007-08-13 15:59 Ben 'Cerbera' Millard http://projectcerbera.com/misc/food/2004-04 - that would work for tables using for column totals 2007-08-13 16:00 zcorpan indeed 2007-08-13 16:00 Ben 'Cerbera' Millard I've seen other uses of , not sure if they'll work if applies to them. will try and find them again 2007-08-13 16:00 zcorpan ok 2007-08-13 16:14 zcorpan it might be a good idea to sort out our requirements -- which table structures need to Just Work 2007-08-13 16:15 Ben 'Cerbera' Millard yeah, I'd say conventional cell arrangements have the highest priority because they are more feasible 2007-08-13 16:15 Ben 'Cerbera' Millard and probably more common 2007-08-13 16:15 Ben 'Cerbera' Millard of the 33 tables I've worked on so far, nearly all have their headers above or to the left of the data 2007-08-13 16:16 zcorpan makes sense 2007-08-13 16:18 zcorpan my point is that the proposal to the list, when we have something structured, should be 1. point to data about the most common table structures 2. explain why the current algorithm is insufficient 3. propose changes to the algorithm to make it cover more cases 2007-08-13 16:18 zcorpan or some such 2007-08-13 16:18 zcorpan :) 2007-08-13 16:18 Ben 'Cerbera' Millard I see 2007-08-13 16:19 Ben 'Cerbera' Millard well, my table collections are deliberately biassed towards the more interesting tables 2007-08-13 16:19 Ben 'Cerbera' Millard but even those are still pretty regular 2007-08-13 16:19 Ben 'Cerbera' Millard headers in one or more rows along the top is very common 2007-08-13 16:20 Ben 'Cerbera' Millard surprisingly :) 2007-08-13 16:20 zcorpan :) 2007-08-13 16:20 Ben 'Cerbera' Millard what was surprising is how row headers are done 2007-08-13 16:20 Ben 'Cerbera' Millard some authors are doing them as regular below a 2007-08-13 16:20 Ben 'Cerbera' Millard some leave an empty in the headers row and do them as 2007-08-13 16:21 Ben 'Cerbera' Millard some have both at the top and down the side 2007-08-13 16:21 zcorpan http://keryx.se/resources/html-elements.xhtml is another table that might be interesting 2007-08-13 16:22 Ben 'Cerbera' Millard but no scope on the column headers 2007-08-13 16:22 Ben 'Cerbera' Millard that's interesting 2007-08-13 16:23 Ben 'Cerbera' Millard it seems authors regularly assume that will overwrite a previous of the same width, if there are cells in between 2007-08-13 16:23 Ben 'Cerbera' Millard but won't block or with a different width 2007-08-13 16:24 zcorpan interesting observation 2007-08-13 16:25 Ben 'Cerbera' Millard wewt :) 2007-08-13 16:25 Ben 'Cerbera' Millard it's fairly conventional in print media, at least in the UK. sometimes see it in price lists and TV guides 2007-08-13 16:27 zcorpan wonder if that's the case more often than not, and if it would be feasable to define in the algorithm 2007-08-13 16:28 Ben 'Cerbera' Millard I think Henri Sivonen said in a message to HTMLWG that the algorithm should recreate the way humans "walk" a table mentally 2007-08-13 16:29 Ben 'Cerbera' Millard in cases where that requires an understanding of the subject, I don't think it's feasible 2007-08-13 16:29 Ben 'Cerbera' Millard but there is some system to it, largely what the HTML4 algorithm hints at (look left, look up) 2007-08-13 16:32 zcorpan when i think about it it should be trivial. when walking from TH, just continue to associate TDs after passing through a TH that has a different colspan. If it's the same colspan, don't associate further TDs 2007-08-13 16:32 zcorpan (this would be augmenting the algorithm we discussed before) 2007-08-13 16:33 Ben 'Cerbera' Millard yeah, that makes sense 2007-08-13 16:36 Ben 'Cerbera' Millard I havn't seen in the middle of tables to indicate seperate sections within each row, so I don't think we'll need this augmentation horizontally 2007-08-13 16:36 Ben 'Cerbera' Millard *separate 2007-08-13 16:36 Ben 'Cerbera' Millard but they may well exist 2007-08-13 16:37 zcorpan otoh, having the same heuristics in both directions is more natural and might perhaps be easier to implement 2007-08-13 16:38 zcorpan not that i have an opinion either way :) 2007-08-13 16:39 Ben 'Cerbera' Millard when you say "propose changes to the algorithm", is that the HTML5 one? 2007-08-13 16:40 zcorpan yes 2007-08-13 16:40 zcorpan which other could i be referring to? :) 2007-08-13 16:41 Ben 'Cerbera' Millard the HTML4 one is the current Recommendation, vague or not. but as HTMLWG is working on HTML5, it makes sense to make changes to that one 2007-08-13 16:42 zcorpan html4 is not updated... html5 is the spec that can be changed :) 2007-08-13 16:42 zcorpan html4 being a Rec is not really relevant 2007-08-13 16:42 Ben 'Cerbera' Millard that's true 2007-08-13 16:43 Ben 'Cerbera' Millard I've got work coming in later today or early tomorrow 2007-08-13 16:43 Ben 'Cerbera' Millard so my work on this will stop for a while, probably a week 2007-08-13 16:43 zcorpan ok 2007-08-13 16:45 Ben 'Cerbera' Millard tables seem to have footnotes quite frequently 2007-08-13 16:46 Ben 'Cerbera' Millard usually the table has some sort of punctuation character like * or ** which is then explained in a

or just text separated by
after or sometimes before the table 2007-08-13 16:47 zcorpan yup... though footnotes are orthogonal to tables and can be researched separately i think 2007-08-13 16:47 Ben 'Cerbera' Millard yeah, footnotes that work with anything would be cool 2007-08-13 16:48 Ben 'Cerbera' Millard the inconsistencies I find with with the way authors currently do this are too big to work around, on the whole 2007-08-13 16:48 Ben 'Cerbera' Millard but you can normally figure it out as a human 2007-08-13 16:58 Ben 'Cerbera' Millard would it be worthwhile for me to send some initial ideas to HTMLWG to help focus table discussion around solving problems in real tables and figuring out parts of an algorithm which could make it into HTML5? 2007-08-13 16:59 Ben 'Cerbera' Millard basically the sort of conversation we have over MSN 2007-08-13 16:59 zcorpan sure 2007-08-13 16:59 Ben 'Cerbera' Millard okies 2007-08-13 16:59 zcorpan at least point out the problems 2007-08-13 16:59 zcorpan as a start 2007-08-13 17:01 Ben 'Cerbera' Millard I'll start it casually so people can participate easily 2007-08-13 17:02 zcorpan sounds good 2007-08-13 17:03 Ben 'Cerbera' Millard the site Stephen Ferg works at is a goldmine of statistical data tables 2007-08-13 17:03 Ben 'Cerbera' Millard http://stats.bls.gov/ro5/ecimid.htm 2007-08-13 17:04 Ben 'Cerbera' Millard they mix headers+id with implied + association 2007-08-13 17:05 zcorpan 2007-08-13 17:06 Ben 'Cerbera' Millard I meant the nested row headers use headers="" while the top-level row headers and all column headers are plain 2007-08-13 17:07 zcorpan right 2007-08-13 17:08 Ben 'Cerbera' Millard that's smart, imho: you achieve the association even through the cells are arranged irregularly, but you keep the markup small by only using it where needed 2007-08-13 17:08 Ben 'Cerbera' Millard *though [...] 2007-08-28 21:57 Ben 'Cerbera' Millard oh, I had an idea about heirarchical row headers 2007-08-28 21:58 Ben 'Cerbera' Millard the algorithm to apply a to other cells won't go back up the table, will it? 2007-08-28 21:58 Ben 'Cerbera' Millard it only apples the header downwards and leftwards 2007-08-28 21:58 Ben 'Cerbera' Millard *rightwards 2007-08-28 21:59 zcorpan right 2007-08-28 22:00 Ben 'Cerbera' Millard in that case, you could use scope=rowgroup to fix it in the simpler cases 2007-08-28 22:01 Ben 'Cerbera' Millard - header 1 - header 2 - header 3 - header 4 - header 5 ... 2007-08-28 22:01 Ben 'Cerbera' Millard header 1 and 2 would get scope=rowgroup. header 1 and header 5 would have a before them 2007-08-28 22:02 zcorpan aha! 2007-08-28 22:02 zcorpan clever 2007-08-28 22:02 Ben 'Cerbera' Millard :) 2007-08-28 22:02 zcorpan although doesn't scale 2007-08-28 22:02 Ben 'Cerbera' Millard doesn't work if there is a second set at header 2's level 2007-08-28 22:02 zcorpan indeed 2007-08-28 22:03 zcorpan we won't be able to express all possible tables 2007-08-28 22:03 zcorpan we'll have to draw the line somewhere 2007-08-28 22:03 Ben 'Cerbera' Millard indeed 2007-08-28 22:04 zcorpan although headers="" covers many funky tables 2007-08-28 22:04 zcorpan if someone would actually use it correctly :) 2007-08-28 22:04 Ben 'Cerbera' Millard the Gorleston Tide Table does 2007-08-28 22:06 Ben 'Cerbera' Millard I think Stephen Ferg's heirarchical row header tables are using it sanely and would work if we handle the various techniques in a single algorithm 2007-08-28 22:06 Ben 'Cerbera' Millard but that might not be feasible 2007-08-28 22:07 zcorpan oh it's probably well possible to come up with an algorithm that integrats with headers 2007-08-28 22:07 zcorpan however we first need to figure out if it helps or hurts to support headers 2007-08-28 22:08 Ben 'Cerbera' Millard yeah, I've seen some headers+id which are imperfect 2007-08-28 22:08 Ben 'Cerbera' Millard normally they are using header+id which we can ignore