[Libreoffice-commits] core.git: Changes to 'feature/taggedPDF'

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Feb 4 11:24:07 UTC 2019


New branch 'feature/taggedPDF' available with the following commits:
commit 3043377ae91de896ae781cafcca15f0b93227c6f
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Mon Feb 4 11:54:27 2019 +0100

    PPTX import of shape description
    
    (cherry picked from commit dc1d26e5a3f0b75e729b58d5848493a48cb532bd)
    
    Change-Id: I7fcd5608a8cdbeea9ea15c9c9aa32c9020154750

commit b80e3677b85ca50fc7e95a0424aaf7c3062021b2
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Thu Jan 31 17:18:36 2019 +0100

    Export background images provided by master page as artifacts
    
    so that screenreaders don't announce them. To make this happen,
    pass them as NonStructElement to PDF writer
    
    Change-Id: I94d52ee0207cd6362edabfb9b891faa7fe341543
    (cherry picked from commit bf978a527fb0bba27cd2c83443e70ad86a63d819)

commit 874c1258f509c727c44c2150f432cc6d89f753d4
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Tue Jan 29 16:20:56 2019 +0100

    Process entire list item (Lbl + LBody) in tagged PDF-compliant way
    
    implemented as described in
    https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G21.1021281
    
    Change-Id: I943c35cb8ee833ff46ff594e6b6c1025450b9ca4
    (cherry picked from commit 98270dafaba733db4660bbd22f2f1f96bf1d6282)

commit f8c2f18260e8151e4e055cab5ac645c44577d2af
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Tue Jan 15 14:11:49 2019 +0100

    Different way to determine if paragraph is within a list
    
    pptx import seems little flaky in this regard, EE_PARA_OUTLLEVEL
    isn't always set (no such problem with odp). Instead, we'll query
    paragraph's depth and visibility of bullets/numbering
    
    Change-Id: Ia8cf6b7bb0e065a1378875442a99d79b006e2d77
    (cherry picked from commit 2f5c61ce217c5db20059b16f681d65580a7577c7)

commit 4e6868580c737ee5c943ea73f0d153f6c0e3fdd3
Author: Armin Le Grand <Armin.Le.Grand at cib.de>
Date:   Thu Dec 20 17:31:32 2018 +0100

    Enhance TaggedPDF export (accessibility)
    
    The current tagged PDF export does not well support
    quite some internal structures. This includes all
    apps (Draw/Impress/Writer/Calc) and some areas.
    
    Area AlternativeText ('/Alt'):
    
    Only writer currently at least adds Title information,
    but we also have Description (MS does add) and Name.
    Target is to add this information when available to
    content frames.
    Writer did that by manually adding that tag using
    PDFExtOutDevData::SetAlternateText, but only used
    Title so far.
    To make this work as broad as possible, better add
    this to primitives. There is already a primitive called
    ObjectInfoPrimitive2D that encapsulates any content
    adding Name/Title/Description using GroupPrimitive
    functionality.
    Changed Writer to use that way. Draw/Impress already
    uses it, all apps now use graphic paint using primitives,
    so we have a natural target to encapsulate. Add support
    to VclMetafileProcessor2D to interpret it and add
    - if mpPDFExtOutDevData->GetIsExportTaggedPDF() - that
    data using a combination of Name/Title/Description and
    add using mpPDFExtOutDevData->SetAlternateText.
    This works for Draw/Impress/Writer, but not for Calc
    because Calc does not create more complex data structures,
    so SetAlternateText does not work (see
    PDFWriterImpl::setAlternateText for more infos).
    
    Area Tagged ListContent (use 'L', 'LI', 'LBody' PDF tags):
    
    To support this in Draw/Impress, we can also use a similar
    way to support in primitives. For this I evaluated how to
    add needed OutlineLevel information to the existing (and
    already used to write 'P') TextHierarchyParagraphPrimitive2D.
    Added this and now ready to use in VclMetafileProcessor2D
    ::processTextHierarchyParagraphPrimitive2D.
    Added now using the OutlineLevel information at the
    TextHierarchyParagraphPrimitive2D. Made sure there are
    fallbacks to unchanged old behaviour when no PDF export
    or no Tagged-PDF used. Creating now '/L', '/LI' and '/LBody'
    statements as tagged PDF wants us to do.
    Exported PDF still works well while additionally a verifier
    as 'PAC 3' shows the expected and wanted structure.
    This will work now for any text in Draw/Impress and for
    Draw-Objects using Lists in Calc. Need to check for direct
    text in Calc cells and Writer - and guess how big the
    effort would be for these to make it work there, too.
    
    Area '/Artifact':
    
    Target is to avoid too much ScreenReader hassle when
    Impress uses Pictures/FillPatterns etc. in Background
    - what means on MasterPage in Impress.
    Experimented with different possibilities. Decided to use
    existing StructureTagPrimitive2D and extend for info if
    encapsulated data is 'Background' data -> on MasterPage.
    Can be created in ImplRenderPaintProc in method
    createRedirectedPrimitive2DSeque as needed by checking
    for MasterPage member (remember: primitives need to be
    as independent from model data as possible, never include
    e.g. a SdrObject reference in any way).
    Tried different ways to use this in VclMetafileProcessor2D
    processStructureTagPrimitive2D, see comments there. Current
    best solution is to just *not* create StuctureTag information
    for these objects.
    
    Change-Id: Ib2a578b02c1256758cda6d15ce37799803d8205c
    (cherry picked from commit b1245b227021c3dee75a4c420c5db320ea6e1afb)



More information about the Libreoffice-commits mailing list