BookmarkSubscribeRSS Feed
formerRuser
Fluorite | Level 6

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;

 

 

4 REPLIES 4
Cynthia_sas
SAS Super FREQ
Hi:
This seems like a question for Tech Support -- if they need to consult with the accessibility team on this request, they have the ability to track the question and refer it to the correct people.
Cynthia
formerRuser
Fluorite | Level 6

Okay, I'll try reaching out to tech support for removing tags for footnotes.

ballardw
Super User

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;
formerRuser
Fluorite | Level 6

Thanks, I'll incorporate this for spacing.

SAS Innovate 2025: Call for Content

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!

Submit your idea!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 4 replies
  • 831 views
  • 0 likes
  • 3 in conversation