Hello community,
I'm building accessible, 508 compliant PDFs in SAS 9.4 using ODS PDF. I need most items in the PDF to be "tagged" so that screen readers can navigate the document for the visually impaired. Therefore, I have turned on the "accessible" option. However, sometimes there are items which I do not want tagged: for instance, an empty P""; return in ODS TEXT or a footnote (see example below). How can I remove/prevent tags for some items in the PDF?
(Now, I know that space between paragraphs could also be created using ods region, but I am creating thousands of PDFs automatically where the amount of information on each page differs, so I need the positioning of the paragraphs to be automatic. However, I am definitely open to other suggestions.)
Here is some mock code:
options orientation=portrait papersize=letter
nodate nonumber
topmargin = 0.25in
bottommargin = 0.25in
leftmargin = 0.50in
rightmargin = 0.50in;
title;
ods pdf file="filepathhere\test.pdf"
title = "My title here"
author = "Me"
accessible
notoc;
ods layout start style={bordercolor=white borderwidth=0pt};
ods region x=0.00in
y=1.00in;
ods proclabel="Tagging this section I think";
proc odstext contents=""; /* Trying to avoid a tag here */
H "This is my heading"
/ style={font_face='calibri' fontsize=20pt just=c fontweight=bold};
P "This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. "
/ style={font_face='times new roman' fontsize=11pt just=l};
P ""; /* This is a space between my two paragraphs, which I do not want tagged as a paragraph. */
P "This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. "
/ style={font_face='times new roman' fontsize=11pt just=l};
run;
footnote1 h=10pt j=r f='calibri' "This is my footnote"; /* I do not want the footnote tagged either */
ods layout end;
ods pdf close;
Okay, I'll try reaching out to tech support for removing tags for footnotes.
Don't have clue about all the other bits but if you are using the empty paragraph for vertical space I think you can get around that with the ESCAPECHAR and inline formatting with the NEWLINE function:
ods escapechar='^'; proc odstext contents=""; /* Trying to avoid a tag here */ H "This is my heading" / style={font_face='calibri' fontsize=20pt just=c fontweight=bold}; P "This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. ^{newline 2} " / style={font_face='times new roman' fontsize=11pt just=l }; P "This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. This is a paragraph. " / style={font_face='times new roman' fontsize=11pt just=l}; run;
Thanks, I'll incorporate this for spacing.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.