Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 178171

Summary: [Accessibility] Enhance table Accessibility in HTML Output
Product: z_Archived Reporter: Jason Weathersby <jasonweathersby>
Component: BIRTAssignee: Zhiqiang Qian <zqian>
Status: VERIFIED FIXED QA Contact: Xiaodan Wang <xwang>
Severity: enhancement    
Priority: P3 CC: bluesoldier, jingwen.shen, josh.martin, jouyang, memphis75, rkanguri, wyan, xwang
Version: 2.2.0Keywords: plan
Target Milestone: 2.5.0 M6   
Hardware: PC   
OS: Windows XP   
Whiteboard: Obsolete
Attachments:
Description Flags
Example of the Property Editor with the new fields. none

Description Jason Weathersby CLA 2007-03-19 23:14:40 EDT
Is there any chance we could get these tags moved to a properties file or something external.  This would allow users to make small changes to the emitted html code without having to recompile the code.

Jason
Comment 1 Josh Martin CLA 2008-09-12 12:58:20 EDT
Created attachment 112443 [details]
Example of the Property Editor with the new fields.
Comment 2 Josh Martin CLA 2008-09-12 12:58:38 EDT
Hey Jason - apologies in the delay getting this ticket updated.  This isn't something that would be universal for all reports, so I don't think the properties file would work.  Each cell within a report would have different values (just like Width, etc.).  It would be very easy to enable basic 508-compliance.  Adding a few attributes to tables cells  would accomplish it.

Adding the scope attribute would solve 80% of the cases (and I'd just set "row" or "col" just like I'd set width today).  Complex tables require two  additional attributes - headers and id.  There's a short article about it at  the link below.  I'll put a quick excerpt as well if it helps.

  http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.4

  - For a given header cell, the scope attribute
  - tells the screen reader the data cells for which
  - this header provides information. Authors may
  - choose to use this attribute instead of
  - headers according to which is more convenient;
  - the two attributes fulfill the same function.
  - The headers attribute is generally needed when
  - headers are placed in irregular positions with
  - respect to the data they apply to.

To summarize, a "Cell" object should support three new properties: scope, id, and headers.  Users should be able to set these values just like they set other cell properties (e.g. Width, Font, etc.).  The rendered HTML would contain the new properties as attributes, just as they were specified:

  <th scope="col">
  
  or

  <td headers="locations east">

  or

  <th id="locations"

I'll attach a screenshot to show what the Property editor would look like.  Adding these few fields and allowing users to adjust HTML output would make the rendered reports accessible to screen readers.  At our company, we develop software for the federal government, and it's an absolute necessity to support this type of accessibility.

If there is any further information I can provide, please let me know.

Thanks,
Josh
Comment 3 Josh Martin CLA 2008-09-12 13:03:49 EDT
If it's OK, could you update the title to something like:  Table Accessibility in HTML Output?  It would definitely fit the accessibility keyword as well.
Comment 4 Jandor Bian CLA 2008-12-22 01:34:46 EST
*** Bug 184726 has been marked as a duplicate of this bug. ***
Comment 5 Wei Yan CLA 2009-02-04 03:31:53 EST
need more time to resolve those issues.
Comment 6 JingwenShen CLA 2009-02-11 02:16:36 EST
Model needs to add three properties"scope, headers, bookmark" on table cell first.
After that, please reassign this bug to engine.
Comment 7 Rick Lu CLA 2009-02-11 02:51:58 EST
(In reply to comment #6)
> Model needs to add three properties"scope, headers, bookmark" on table cell
> first.
> After that, please reassign this bug to engine.
> 

Can you please give out details for these properties? Like which type? And default value, etc?
Comment 8 JingwenShen CLA 2009-02-11 03:09:39 EST
These three properties should have defalult null value if user doesn't defined them on table cell.

(1)"scope":When specified, this attribute must have one of the following constant values:
"row": The current cell provides header information for the rest of the row that contains it.
"col": The current cell provides header information for the rest of the column that contains it.
"rowgroup": The header cell provides header information for the rest of the row group that contains it.
"colgroup": The header cell provides header information for the rest of the column group that contains it.

(2)"bookmark": This attribute specifies the id of header cells.This name must be unique in the report document.It can be an expression or a string.   

(3)"headers":User can choose bookmark defined as headers of the data cell.
Comment 9 Rick Lu CLA 2009-02-11 03:31:36 EST
(In reply to comment #8)
> These three properties should have defalult null value if user doesn't defined
> them on table cell.
> 
> (3)"headers":User can choose bookmark defined as headers of the data cell.
> 

headers is a string or just an expression?
Comment 10 Josh Martin CLA 2009-02-11 09:34:04 EST
headers is a space separated string containing one or more of the bookmark ID's.

For example, assume you had three headers:

Header 1 (Year) bookmark = "2009"
Header 2 (Month) bookmark = "May"
Header 3 (Day) bookmark = "17"

Then the table cell that contains the data for May 17th, 2009 would have the following headers value: "2009 May 17".
Comment 11 Rick Lu CLA 2009-02-16 22:10:55 EST
Please add properties as comment#8 and #9 said.
Comment 12 hong chen CLA 2009-02-20 03:57:47 EST
added scope, bookmark and headers properties on cell element.

reassign to engine team.
Comment 13 JingwenShen CLA 2009-02-23 01:32:34 EST
Engine output these three properties on table cell.
Still need UI's support.
Reassign the problem to designer.
Comment 14 Zhiqiang Qian CLA 2009-02-25 01:09:44 EST
Please suggest the UI mockup.
Comment 15 Liang Yu CLA 2009-03-01 22:21:13 EST
*** Bug 260973 has been marked as a duplicate of this bug. ***
Comment 16 Josh Martin CLA 2009-03-02 13:56:18 EST
(In reply to comment #14)
> Please suggest the UI mockup.
> 

Zhiqiang -

Please see the screenshot I attached during the first comment for an example UI.  Let me know if there is anything else you need.

Thanks,
Josh
Comment 17 Rima Kanguri CLA 2009-03-05 19:28:35 EST
Lets show the 3 new properties in the  advanced property view only, as also suggested in comment 1
Comment 18 Zhiqiang Qian CLA 2009-03-05 22:29:57 EST
OK, then it should already have done. Mark as fixed.
Comment 19 Xiaodan Wang CLA 2009-03-16 07:18:59 EDT
Bookmark, Headers and scope works correctly for table.
For the crosstab issue, open new entry bug 268749 and bug 268754.

Verified in build (2.5.0.v20090316-0939).