• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

PHPOffice / PHPPresentation / 32178444798
93%

Build:
DEFAULT BRANCH: master
Ran 18 Aug 2026 07:48PM UTC
Jobs 1
Files 141
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Aug 2026 07:45PM UTC coverage: 92.102% (+0.02%) from 92.084%
32178444798

push

github

web-flow
Mark a shape as decorative (#899)

* feat: mark a shape as decorative

A shape that carries no information — a coloured band, a rule, a background
image — is announced by assistive technologies like any other, which forces
blind users through content that means nothing. Both formats can say otherwise,
and the library could not.

Add a three-state `decorative` flag to `AbstractShape`: null (the default) writes
nothing, true and false state the case explicitly. PowerPoint2007 writes it as
the `{C183D7F6-B498-43B3-948B-1728B52AA6E4}` extension of `p:cNvPr` for every
shape kind, sharing the extension list with the SVG creation id where a picture
already has one. ODPresentation writes the `loext:decorative` attribute, the
LibreOffice extension standardized in ODF 1.4 — which is why the ODF test asserts
the 1.2 schema rejects it, as the existing `loext:mime-type` test does.

Closes #705

* feat: read the decorative flag back from documents

The PowerPoint2007 reader restores it from the `{C183D7F6-...}` extension of
`p:cNvPr` for rich text, pictures, tables and charts; the ODPresentation reader
from the `loext:decorative` attribute of the frame.

* fix: keep the reader coupling below the PHPMD threshold

Reading the decorative flag added a dependency on AbstractShape to both
readers, which pushed PowerPoint2007 over the limit. The helper returns the
flag instead of applying it, so the readers keep the same dependencies as
before.

* docs: changelog entry for the decorative flag

* refactor: the decorative flag is a plain bool

A shape is decorative or it is not: the third state said "the document
does not say", which the absent attribute already says. False and absent
mean the same thing to both formats, so false now writes nothing instead
of an attribute no reader can tell from its default.

56 of 58 new or added lines in 5 files covered. (96.55%)

10122 of 10990 relevant lines covered (92.1%)

44.29 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
88.57
-0.1% src/PhpPresentation/Reader/PowerPoint2007.php
Jobs
ID Job ID Ran Files Coverage
1 32178444798.1 18 Aug 2026 07:48PM UTC 141
92.1
GitHub Action Run
Source Files on build 32178444798
  • Tree
  • List 141
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • a4b7a8bf on github
  • Prev Build on master (#32171395548)
  • Next Build on master (#32220271169)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc