From 57787b7091a9273b4d3b3202b3caa866fe89432f Mon Sep 17 00:00:00 2001 From: Ulrike Fischer Date: Mon, 6 Jan 2025 22:17:32 +0100 Subject: [PATCH] use ARIA role for presentation tables. --- required/latex-lab/latex-lab-table.dtx | 73 +++--- .../table-015-presentation.tlg | 147 +++++------ .../table-008-disable.tlg | 238 +++++++++--------- 3 files changed, 238 insertions(+), 220 deletions(-) diff --git a/required/latex-lab/latex-lab-table.dtx b/required/latex-lab/latex-lab-table.dtx index ef905462d..967be5e14 100644 --- a/required/latex-lab/latex-lab-table.dtx +++ b/required/latex-lab/latex-lab-table.dtx @@ -138,17 +138,17 @@ % as a layout to ensure that the content is properly aligned % or because it is a not yet (fully) supported table structure, % the tagging can be disabled with -% \verb|\tagpdfsetup{table/tagging=false}| or with \verb|\tagpdfsetup{table/tagging=presentation}|% +% \verb|\tagpdfsetup{table/tagging=false}| or changed with +% \verb|\tagpdfsetup{table/tagging=presentation}|% % \footnote{The key has been renamed. The old name `table-tagging` still works but is % deprecated. The value \texttt{presentation} refers to the ARIA role \enquote{presentation}.} % The first option disables the table tagging code and the content of the tabular % is then treated more or less like running text. This works ok for simple tables using % only hmode-cells (l/c/r) with normal text content, but fails if the table uses vmode-cells % (p/m/b). In such cases the second option works better: it keeps the tagging code active -% but changes the tag names to \texttt{Div} and the grouping structure \texttt{NonStruct}. It also -% (re)sets the \texttt{table/header-rows} key to empty. -% The key should currently only be used in a group as there is no key (yet) to reset to the default -% tag names. +% and adds an ARIA-role as attribute. It also +% (re)sets the \texttt{table/header-rows} and \texttt{table/header-columns} keys to empty. +% To reset to the normal tagging use \verb|\tagpdfsetup{table/tagging=true}.| % % \subsection{Header rows and columns} % There is some basic support\footnote{This is not meant to be the @@ -228,7 +228,7 @@ % \item Not every table should be tagged as a Table structure, often they are % only used as layout help, e.g. to align authors in a title pages. In such uses % the tagging of the table must be deactivated with \verb|\tagpdfsetup{table/tagging=false}| -% or \verb|\tagpdfsetup{table/tagging=presentation}|. +% or changed with \verb|\tagpdfsetup{table/tagging=presentation}|. % % \item Only simple header rows and columns are currently supported. Complex headers with % subheaders will be handled later as that needs some syntax changes. Tables @@ -827,9 +827,6 @@ % \end{macrocode} % \end{plugdecl} % -% -% -% % \begin{plugdecl}{Table} % \begin{macrocode} \NewSocketPlug{tagsupport/tbl/hmode/begin}{Table} @@ -847,6 +844,26 @@ } % \end{macrocode} % \end{plugdecl} +% +% \begin{plugdecl}{LayoutTable} +% \changes{v0.85p}{2025/01/05}{new plugs for layout tables (tagging/778)} +% This plug is meant for presentation tables, it sets the ARIA role. +% \begin{macrocode} +\NewSocketPlug{tagsupport/tbl/hmode/begin}{LayoutTable} + { + \tag_mc_end_push: +% \end{macrocode} +% Close the P-chunk. This assumes that para-tagging is active. +% For nested tables that is not necessarily true, so we test for it. +% \begin{macrocode} + \bool_lazy_and:nnT + { \bool_if_exist_p:N \l__tag_para_bool } { \l__tag_para_bool } + { \tag_struct_end:n { text } } + \tag_struct_begin:n {tag=\l_@@_tabletag_tl,attribute-class=ARIA-role-presentation} + \tl_gset:Ne \g_@@_struct_table_tl { \tag_get:n {struct_num} } + } +% \end{macrocode} +% \end{plugdecl} % % \begin{plugdecl}{Table} % \begin{macrocode} @@ -874,6 +891,17 @@ } % \end{macrocode} % \end{plugdecl} +% +% \begin{plugdecl}{Table} +% \begin{macrocode} +\NewSocketPlug{tagsupport/tbl/vmode/begin}{LayoutTable} + { + \tag_struct_begin:n {tag=\l_@@_tabletag_tl,attribute-class=ARIA-role-presentation} + \tl_gset:Ne \g_@@_struct_table_tl { \tag_get:n {struct_num} } + } +% \end{macrocode} +% \end{plugdecl} +% % % \begin{plugdecl}{Table} % \begin{macrocode} @@ -1015,25 +1043,7 @@ } % \end{macrocode} % \end{macro} -% \changes{v0.85p}{2025/01/05}{reset tag names when switching out of presentation mode (tagging/778)} -% \begin{macrocode} -\cs_new_protected:Npn\@@_init_tagnames_default: - { - \tl_set:Nn\l_@@_rowtag_tl {TR} - \tl_set:Nn\l_@@_pcelltag_tl {TD} - \tl_set:Nn\l_@@_celltag_tl {TD} - \tl_set:Nn\l_@@_tabletag_tl {Table} - } - -\cs_new_protected:Npn\@@_init_tagnames_presentation: - { - \tl_set:Nn\l_@@_rowtag_tl {NonStruct} - \tl_set:Nn\l_@@_pcelltag_tl {NonStruct} - \tl_set:Nn\l_@@_celltag_tl {text} - \tl_set:Nn\l_@@_tabletag_tl {Div} - } -% \end{macrocode} - +% % \begin{macrocode} % See tagpdfsetup-keys.md in tagpdf/doc for the naming scheme. \keys_define:nn { __tag / setup } @@ -1041,7 +1051,6 @@ table/tagging .choices:nn = { true, on } { \__tag_tbl_enable: - \@@_init_tagnames_default: }, table/tagging .choices:nn = { false, off } { \__tag_tbl_disable: }, @@ -1049,7 +1058,8 @@ table/tagging / presentation .code:n = { \__tag_tbl_enable: - \@@_init_tagnames_presentation: + \AssignSocketPlug{tagsupport/tbl/hmode/begin}{LayoutTable} + \AssignSocketPlug{tagsupport/tbl/vmode/begin}{LayoutTable} \clist_clear:N \l_@@_header_rows_clist \clist_clear:N \l_@@_header_columns_clist }, @@ -1089,6 +1099,7 @@ % At first we define attributes for the three standard cases: % We delay to begin document % as we can't know if tagpdf is already loaded. +% \changes{v0.85p}{2025/01/05}{add ARIA-role for presentation (tagging/778)} % \begin{macrocode} \AddToHook{begindocument} { @@ -1102,6 +1113,8 @@ {TH-row}{/O /Table /Scope /Row}, role/new-attribute = {TH-both}{/O /Table /Scope /Both}, + role/new-attribute = + {ARIA-role-presentation}{/O /ARIA-1.1/role (presentation)} } % \end{macrocode} % diff --git a/required/latex-lab/testfiles-table-luatex/table-015-presentation.tlg b/required/latex-lab/testfiles-table-luatex/table-015-presentation.tlg index c9fb003f5..90c4468ea 100644 --- a/required/latex-lab/testfiles-table-luatex/table-015-presentation.tlg +++ b/required/latex-lab/testfiles-table-luatex/table-015-presentation.tlg @@ -9533,10 +9533,11 @@ The structure has the following kids: ========================= The structure 7 contains: > Type => /StructElem -> S => /Div +> C => /ARIA-role-presentation +> S => /Table > NS => pdf2 -> rolemap => {Div}{pdf2} -> parentrole => {Document}{pdf2} +> rolemap => {Table}{pdf2} +> parentrole => {Table}{pdf2} > P => parent structure: 5 = /text-unit The structure has the following kids: > Struct 8 @@ -9544,11 +9545,11 @@ The structure has the following kids: ========================= The structure 8 contains: > Type => /StructElem -> S => /NonStruct +> S => /TR > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 7 = /Div +> rolemap => {TR}{pdf2} +> parentrole => {TR}{pdf2} +> P => parent structure: 7 = /Table The structure has the following kids: > Struct 9 > Struct 12 @@ -9556,11 +9557,11 @@ The structure has the following kids: ========================= The structure 9 contains: > Type => /StructElem -> S => /NonStruct +> S => /TD > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 8 = /NonStruct +> rolemap => {TD}{pdf2} +> parentrole => {TD}{pdf2} +> P => parent structure: 8 = /TR The structure has the following kids: > Struct 10 ========================= @@ -9570,8 +9571,8 @@ The structure 10 contains: > S => /Div > NS => pdf2 > rolemap => {Div}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 9 = /NonStruct +> parentrole => {TD}{pdf2} +> P => parent structure: 9 = /TD The structure has the following kids: > Struct 11 ========================= @@ -9590,11 +9591,11 @@ The structure has the following kids: ========================= The structure 12 contains: > Type => /StructElem -> S => /NonStruct +> S => /TD > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 8 = /NonStruct +> rolemap => {TD}{pdf2} +> parentrole => {TD}{pdf2} +> P => parent structure: 8 = /TR The structure has the following kids: > Struct 13 ========================= @@ -9604,8 +9605,8 @@ The structure 13 contains: > S => /Div > NS => pdf2 > rolemap => {Div}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 12 = /NonStruct +> parentrole => {TD}{pdf2} +> P => parent structure: 12 = /TD The structure has the following kids: > Struct 14 ========================= @@ -9660,10 +9661,11 @@ The structure has the following kids: ========================= The structure 18 contains: > Type => /StructElem -> S => /Div +> C => /ARIA-role-presentation +> S => /Table > NS => pdf2 -> rolemap => {Div}{pdf2} -> parentrole => {Document}{pdf2} +> rolemap => {Table}{pdf2} +> parentrole => {Table}{pdf2} > P => parent structure: 16 = /text-unit The structure has the following kids: > Struct 19 @@ -9672,11 +9674,11 @@ The structure has the following kids: ========================= The structure 19 contains: > Type => /StructElem -> S => /NonStruct +> S => /TR > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 18 = /Div +> rolemap => {TR}{pdf2} +> parentrole => {TR}{pdf2} +> P => parent structure: 18 = /Table The structure has the following kids: > Struct 20 > Struct 23 @@ -9684,11 +9686,11 @@ The structure has the following kids: ========================= The structure 20 contains: > Type => /StructElem -> S => /NonStruct +> S => /TD > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 19 = /NonStruct +> rolemap => {TD}{pdf2} +> parentrole => {TD}{pdf2} +> P => parent structure: 19 = /TR The structure has the following kids: > Struct 21 ========================= @@ -9698,8 +9700,8 @@ The structure 21 contains: > S => /Div > NS => pdf2 > rolemap => {Div}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 20 = /NonStruct +> parentrole => {TD}{pdf2} +> P => parent structure: 20 = /TD The structure has the following kids: > Struct 22 ========================= @@ -9718,11 +9720,11 @@ The structure has the following kids: ========================= The structure 23 contains: > Type => /StructElem -> S => /NonStruct +> S => /TD > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 19 = /NonStruct +> rolemap => {TD}{pdf2} +> parentrole => {TD}{pdf2} +> P => parent structure: 19 = /TR The structure has the following kids: > Struct 24 ========================= @@ -9732,8 +9734,8 @@ The structure 24 contains: > S => /Div > NS => pdf2 > rolemap => {Div}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 23 = /NonStruct +> parentrole => {TD}{pdf2} +> P => parent structure: 23 = /TD The structure has the following kids: > Struct 25 ========================= @@ -9752,11 +9754,11 @@ The structure has the following kids: ========================= The structure 26 contains: > Type => /StructElem -> S => /NonStruct +> S => /TR > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 18 = /Div +> rolemap => {TR}{pdf2} +> parentrole => {TR}{pdf2} +> P => parent structure: 18 = /Table The structure has the following kids: > Struct 27 > Struct 35 @@ -9764,11 +9766,11 @@ The structure has the following kids: ========================= The structure 27 contains: > Type => /StructElem -> S => /NonStruct +> S => /TD > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 26 = /NonStruct +> rolemap => {TD}{pdf2} +> parentrole => {TD}{pdf2} +> P => parent structure: 26 = /TR The structure has the following kids: > Struct 28 ========================= @@ -9778,8 +9780,8 @@ The structure 28 contains: > S => /Div > NS => pdf2 > rolemap => {Div}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 27 = /NonStruct +> parentrole => {TD}{pdf2} +> P => parent structure: 27 = /TD The structure has the following kids: > Struct 29 > Struct 30 @@ -9856,11 +9858,11 @@ The structure has the following kids: ========================= The structure 35 contains: > Type => /StructElem -> S => /text -> NS => latex -> rolemap => {P}{pdf2} -> parentrole => {P}{pdf2} -> P => parent structure: 26 = /NonStruct +> S => /TD +> NS => pdf2 +> rolemap => {TD}{pdf2} +> parentrole => {TD}{pdf2} +> P => parent structure: 26 = /TR The structure has the following kids: > MC 12 ========================= @@ -9903,10 +9905,11 @@ The structure has the following kids: ========================= The structure 39 contains: > Type => /StructElem -> S => /Div +> C => /ARIA-role-presentation +> S => /Table > NS => pdf2 -> rolemap => {Div}{pdf2} -> parentrole => {Document}{pdf2} +> rolemap => {Table}{pdf2} +> parentrole => {Table}{pdf2} > P => parent structure: 37 = /text-unit The structure has the following kids: > Struct 40 @@ -9914,11 +9917,11 @@ The structure has the following kids: ========================= The structure 40 contains: > Type => /StructElem -> S => /NonStruct +> S => /TR > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 39 = /Div +> rolemap => {TR}{pdf2} +> parentrole => {TR}{pdf2} +> P => parent structure: 39 = /Table The structure has the following kids: > Struct 41 > Struct 44 @@ -9926,11 +9929,11 @@ The structure has the following kids: ========================= The structure 41 contains: > Type => /StructElem -> S => /NonStruct +> S => /TD > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 40 = /NonStruct +> rolemap => {TD}{pdf2} +> parentrole => {TD}{pdf2} +> P => parent structure: 40 = /TR The structure has the following kids: > Struct 42 ========================= @@ -9940,8 +9943,8 @@ The structure 42 contains: > S => /Div > NS => pdf2 > rolemap => {Div}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 41 = /NonStruct +> parentrole => {TD}{pdf2} +> P => parent structure: 41 = /TD The structure has the following kids: > Struct 43 ========================= @@ -9960,11 +9963,11 @@ The structure has the following kids: ========================= The structure 44 contains: > Type => /StructElem -> S => /NonStruct +> S => /TD > NS => pdf2 -> rolemap => {NonStruct}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 40 = /NonStruct +> rolemap => {TD}{pdf2} +> parentrole => {TD}{pdf2} +> P => parent structure: 40 = /TR The structure has the following kids: > Struct 45 ========================= @@ -9974,8 +9977,8 @@ The structure 45 contains: > S => /Div > NS => pdf2 > rolemap => {Div}{pdf2} -> parentrole => {Document}{pdf2} -> P => parent structure: 44 = /NonStruct +> parentrole => {TD}{pdf2} +> P => parent structure: 44 = /TD The structure has the following kids: > Struct 46 ========================= diff --git a/required/latex-lab/testfiles-table-pdftex/table-008-disable.tlg b/required/latex-lab/testfiles-table-pdftex/table-008-disable.tlg index 224e5d8f9..da89fdf16 100644 --- a/required/latex-lab/testfiles-table-pdftex/table-008-disable.tlg +++ b/required/latex-lab/testfiles-table-pdftex/table-008-disable.tlg @@ -125,7 +125,9 @@ Package tagpdf Info: Parent-Child 'P' --> 'MC'. [Sockets] ==> Replacing plug 'code' with 'code' in socket 'tagsupport/tbl/colspan'. [Sockets] ==> Replacing plug 'code' with 'code' in socket 'tagsupport/tbl/leaders/begin'. [Sockets] ==> Replacing plug 'code' with 'code' in socket 'tagsupport/tbl/leaders/end'. -[Sockets] ==> Socket 'tagsupport/tbl/hmode/begin' containing plug 'Table' used. +[Sockets] ==> Replacing plug 'Table' with 'LayoutTable' in socket 'tagsupport/tbl/hmode/begin'. +[Sockets] ==> Replacing plug 'Table' with 'LayoutTable' in socket 'tagsupport/tbl/vmode/begin'. +[Sockets] ==> Socket 'tagsupport/tbl/hmode/begin' containing plug 'LayoutTable' used. Package tagpdf Info: text has been pushed to the mc stack tagpdf DEBUG Info: MC end inserted [on line ...] Package tagpdf Info: closing structure 8 tagged /text @@ -135,13 +137,13 @@ The sequence \g__tag_struct_tag_stack_seq contains the items (without outer brac > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'Div'. +Package tagpdf Info: Parent-Child 'Document' --> 'Table'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'Div' on line ... -tagpdf DEBUG Info: Struct 9 begin inserted with options: tag=\l__tbl_tabletag_tl +(tagpdf) Rolemapped from: 'Document' --> 'Table' on line ... +tagpdf DEBUG Info: Struct 9 begin inserted with options: tag=\l__tbl_tabletag_tl ,attribute-class=ARIA-role-presentation (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{Div}{Div}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. @@ -150,58 +152,58 @@ The sequence \g__tag_struct_tag_stack_seq contains the items (without outer brac [Sockets] ==> Socket 'tagsupport/tbl/init/celldata' containing plug 'default' used. [Sockets] ==> Socket 'tagsupport/tbl/row/begin' containing plug 'TR' used. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'NonStruct'. +Package tagpdf Info: Parent-Child 'Table' --> 'TR'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'NonStruct' on line ... +(tagpdf) Rolemapped from: 'Table' --> 'TR' on line ... tagpdf DEBUG Info: Struct 10 begin inserted with options: tag=\l__tbl_rowtag_tl ,attribute-class=\l__tbl_rowattribute_tl (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/tbl/pcell/begin' containing plug 'TDpbox' used. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'NonStruct'. +Package tagpdf Info: Parent-Child 'TR' --> 'TD'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'NonStruct' on line ... +(tagpdf) Rolemapped from: 'TR' --> 'TD' on line ... tagpdf DEBUG Info: Struct 11 begin inserted with options: tag=\l__tbl_pcelltag_tl ,attribute-class={\l__tbl_cellattribute_tl } (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/para/begin' containing plug 'block' used. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'Div'. +Package tagpdf Info: Parent-Child 'TD' --> 'Div'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'Div' on line ... +(tagpdf) Rolemapped from: 'TD' --> 'Div' on line ... tagpdf DEBUG Info: Struct 12 begin inserted with options: tag=\l__tag_para_main_tag_tl ,attribute-class=\l__tag_para_main_attr_class_tl , (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): > {{Div}{Div}} -> {{NonStruct}{NonStruct}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'P'. +Package tagpdf Info: Parent-Child 'TD' --> 'P'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'text' on line ... +(tagpdf) Rolemapped from: 'TD' --> 'text' on line ... tagpdf DEBUG Info: Struct 13 begin inserted with options: tag=\l__tag_para_tag_tl ,attribute-class=\l__tag_para_attr_class_tl (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): > {{text}{P}} > {{Div}{Div}} -> {{NonStruct}{NonStruct}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. @@ -214,9 +216,9 @@ Package tagpdf Info: closing structure 13 tagged /text tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): > {{Div}{Div}} -> {{NonStruct}{NonStruct}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. @@ -225,138 +227,138 @@ tagpdf DEBUG Info: MC end inserted [on line ...] Package tagpdf Info: closing structure 12 tagged /Div tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. -Package tagpdf Info: closing structure 11 tagged /NonStruct +Package tagpdf Info: closing structure 11 tagged /TD tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/tbl/cell/begin' containing plug 'TD' used. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'P'. +Package tagpdf Info: Parent-Child 'TR' --> 'TD'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'text' on line ... +(tagpdf) Rolemapped from: 'TR' --> 'TD' on line ... tagpdf DEBUG Info: Struct 14 begin inserted with options: tag=\l__tbl_celltag_tl ,attribute-class={\l__tbl_cellattribute_tl } (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{text}{P}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. tagpdf DEBUG Info: MC begin inserted with options: [on line ...] -Package tagpdf Info: Parent-Child 'P' --> 'MC'. +Package tagpdf Info: Parent-Child 'TD' --> 'MC'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'P' --> 'MC' on line ... +(tagpdf) Rolemapped from: 'TD' --> 'MC' on line ... [Sockets] ==> Socket 'tagsupport/tbl/cell/end' containing plug 'TD' used. tagpdf DEBUG Info: MC end inserted [on line ...] -Package tagpdf Info: closing structure 14 tagged /text +Package tagpdf Info: closing structure 14 tagged /TD tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/tbl/row/end' containing plug 'TR' used. [Sockets] ==> Socket 'tagsupport/tbl/cell/begin' containing plug 'TD' used. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'P'. +Package tagpdf Info: Parent-Child 'TR' --> 'TD'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'text' on line ... +(tagpdf) Rolemapped from: 'TR' --> 'TD' on line ... tagpdf DEBUG Info: Struct 15 begin inserted with options: tag=\l__tbl_celltag_tl ,attribute-class={\l__tbl_cellattribute_tl } (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{text}{P}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. tagpdf DEBUG Info: MC begin inserted with options: [on line ...] -Package tagpdf Info: Parent-Child 'P' --> 'MC'. +Package tagpdf Info: Parent-Child 'TD' --> 'MC'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'P' --> 'MC' on line ... +(tagpdf) Rolemapped from: 'TD' --> 'MC' on line ... [Sockets] ==> Socket 'tagsupport/tbl/cell/end' containing plug 'TD' used. tagpdf DEBUG Info: MC end inserted [on line ...] -Package tagpdf Info: closing structure 15 tagged /text +Package tagpdf Info: closing structure 15 tagged /TD tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. -Package tagpdf Info: closing structure 10 tagged /NonStruct +Package tagpdf Info: closing structure 10 tagged /TR tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{Div}{Div}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/tbl/row/begin' containing plug 'TR' used. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'NonStruct'. +Package tagpdf Info: Parent-Child 'Table' --> 'TR'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'NonStruct' on line ... +(tagpdf) Rolemapped from: 'Table' --> 'TR' on line ... tagpdf DEBUG Info: Struct 16 begin inserted with options: tag=\l__tbl_rowtag_tl ,attribute-class=\l__tbl_rowattribute_tl (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/tbl/pcell/begin' containing plug 'TDpbox' used. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'NonStruct'. +Package tagpdf Info: Parent-Child 'TR' --> 'TD'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'NonStruct' on line ... +(tagpdf) Rolemapped from: 'TR' --> 'TD' on line ... tagpdf DEBUG Info: Struct 17 begin inserted with options: tag=\l__tbl_pcelltag_tl ,attribute-class={\l__tbl_cellattribute_tl } (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/para/begin' containing plug 'block' used. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'Div'. +Package tagpdf Info: Parent-Child 'TD' --> 'Div'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'Div' on line ... +(tagpdf) Rolemapped from: 'TD' --> 'Div' on line ... tagpdf DEBUG Info: Struct 18 begin inserted with options: tag=\l__tag_para_main_tag_tl ,attribute-class=\l__tag_para_main_attr_class_tl , (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): > {{Div}{Div}} -> {{NonStruct}{NonStruct}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'P'. +Package tagpdf Info: Parent-Child 'TD' --> 'P'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'text' on line ... +(tagpdf) Rolemapped from: 'TD' --> 'text' on line ... tagpdf DEBUG Info: Struct 19 begin inserted with options: tag=\l__tag_para_tag_tl ,attribute-class=\l__tag_para_attr_class_tl (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): > {{text}{P}} > {{Div}{Div}} -> {{NonStruct}{NonStruct}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. @@ -369,9 +371,9 @@ Package tagpdf Info: closing structure 19 tagged /text tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): > {{Div}{Div}} -> {{NonStruct}{NonStruct}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. @@ -380,88 +382,88 @@ tagpdf DEBUG Info: MC end inserted [on line ...] Package tagpdf Info: closing structure 18 tagged /Div tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. -Package tagpdf Info: closing structure 17 tagged /NonStruct +Package tagpdf Info: closing structure 17 tagged /TD tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/tbl/cell/begin' containing plug 'TD' used. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'P'. +Package tagpdf Info: Parent-Child 'TR' --> 'TD'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'text' on line ... +(tagpdf) Rolemapped from: 'TR' --> 'TD' on line ... tagpdf DEBUG Info: Struct 20 begin inserted with options: tag=\l__tbl_celltag_tl ,attribute-class={\l__tbl_cellattribute_tl } (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{text}{P}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. tagpdf DEBUG Info: MC begin inserted with options: [on line ...] -Package tagpdf Info: Parent-Child 'P' --> 'MC'. +Package tagpdf Info: Parent-Child 'TD' --> 'MC'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'P' --> 'MC' on line ... +(tagpdf) Rolemapped from: 'TD' --> 'MC' on line ... [Sockets] ==> Socket 'tagsupport/tbl/cell/end' containing plug 'TD' used. tagpdf DEBUG Info: MC end inserted [on line ...] -Package tagpdf Info: closing structure 20 tagged /text +Package tagpdf Info: closing structure 20 tagged /TD tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/tbl/cell/begin' containing plug 'TD' used. [Sockets] ==> Socket 'tag/struct/tag' containing plug 'latex-tags' used. -Package tagpdf Info: Parent-Child 'Document' --> 'P'. +Package tagpdf Info: Parent-Child 'TR' --> 'TD'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'Document' --> 'text' on line ... +(tagpdf) Rolemapped from: 'TR' --> 'TD' on line ... tagpdf DEBUG Info: Struct 21 begin inserted with options: tag=\l__tbl_celltag_tl ,attribute-class={\l__tbl_cellattribute_tl } (tagpdf DEBUG) [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{text}{P}} -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TD}{TD}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. tagpdf DEBUG Info: MC begin inserted with options: [on line ...] -Package tagpdf Info: Parent-Child 'P' --> 'MC'. +Package tagpdf Info: Parent-Child 'TD' --> 'MC'. (tagpdf) Relation is 1 (='0..n') -(tagpdf) Rolemapped from: 'P' --> 'MC' on line ... +(tagpdf) Rolemapped from: 'TD' --> 'MC' on line ... [Sockets] ==> Socket 'tagsupport/tbl/cell/end' containing plug 'TD' used. tagpdf DEBUG Info: MC end inserted [on line ...] -Package tagpdf Info: closing structure 21 tagged /text +Package tagpdf Info: closing structure 21 tagged /TD tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{NonStruct}{NonStruct}} -> {{Div}{Div}} +> {{TR}{TR}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/tbl/row/end' containing plug 'TR' used. -Package tagpdf Info: closing structure 16 tagged /NonStruct +Package tagpdf Info: closing structure 16 tagged /TR tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): -> {{Div}{Div}} +> {{Table}{Table}} > {{text-unit}{Part}} > {{Document}{Document}} > {{Root}{StructTreeRoot}}. [Sockets] ==> Socket 'tagsupport/tbl/finalize' containing plug 'Table' used. [Sockets] ==> Socket 'tagsupport/tbl/restore/celldata' containing plug 'default' used. [Sockets] ==> Socket 'tagsupport/tbl/hmode/end' containing plug 'Table' used. -Package tagpdf Info: closing structure 9 tagged /Div +Package tagpdf Info: closing structure 9 tagged /Table tagpdf DEBUG Info: Struct end inserted [on line ...] The sequence \g__tag_struct_tag_stack_seq contains the items (without outer braces): > {{text-unit}{Part}} @@ -1065,20 +1067,20 @@ Completed box being shipped out [1] ........\write1{\new@label@record{mcid-4}{{tagabspage}{\__property_code_tagabspage: }{tagmcabs}{4}{tagmcid}{\__property_code_tagmcid: }}} ........\penalty 10000 ........\glue 0.0 -........\pdfliteral shipout page{/text <> BDC} +........\pdfliteral shipout page{/TD <> BDC} ........\T1/cmr/m/n/10 b ........\pdfliteral page{EMC} ........\glue 0.0 plus 1.0fil ........\glue 6.0 .......\glue(\tabskip) 0.0 -......\marks4{b-,4,14,text,,,} -......\marks4{b+,4,14,text,,,} +......\marks4{b-,4,14,TD,,,} +......\marks4{b+,4,14,TD,,,} ......\marks4{e-,4,14,} ......\marks4{e+,4,14,} ......\write1{\new@label@record{mcid-5}{{tagabspage}{\__property_code_tagabspage: }{tagmcabs}{5}{tagmcid}{\__property_code_tagmcid: }}} -......\pdfliteral shipout page{/text <> BDC} -......\marks4{b-,5,15,text,,,} -......\marks4{b+,5,15,text,,,} +......\pdfliteral shipout page{/TD <> BDC} +......\marks4{b-,5,15,TD,,,} +......\marks4{b+,5,15,TD,,,} ......\pdfliteral page{EMC} ......\marks4{e-,5,15,} ......\marks4{e+,5,15,} @@ -1114,7 +1116,7 @@ Completed box being shipped out [1] ........\write1{\new@label@record{mcid-7}{{tagabspage}{\__property_code_tagabspage: }{tagmcabs}{7}{tagmcid}{\__property_code_tagmcid: }}} ........\penalty 10000 ........\glue 0.0 -........\pdfliteral shipout page{/text <> BDC} +........\pdfliteral shipout page{/TD <> BDC} ........\T1/cmr/m/n/10 d ........\pdfliteral page{EMC} ........\glue 0.0 plus 1.0fil @@ -1126,18 +1128,18 @@ Completed box being shipped out [1] ........\write1{\new@label@record{mcid-8}{{tagabspage}{\__property_code_tagabspage: }{tagmcabs}{8}{tagmcid}{\__property_code_tagmcid: }}} ........\penalty 10000 ........\glue 0.0 -........\pdfliteral shipout page{/text <> BDC} +........\pdfliteral shipout page{/TD <> BDC} ........\T1/cmr/m/n/10 e ........\pdfliteral page{EMC} ........\glue 0.0 plus 1.0fil ........\glue 6.0 .......\glue(\tabskip) 0.0 -......\marks4{b-,7,20,text,,,} -......\marks4{b+,7,20,text,,,} +......\marks4{b-,7,20,TD,,,} +......\marks4{b+,7,20,TD,,,} ......\marks4{e-,7,20,} ......\marks4{e+,7,20,} -......\marks4{b-,8,21,text,,,} -......\marks4{b+,8,21,text,,,} +......\marks4{b-,8,21,TD,,,} +......\marks4{b+,8,21,TD,,,} ......\marks4{e-,8,21,} ......\marks4{e+,8,21,} .....\mathoff