Equidox Webinar Wednesdays – Smart Table Detector

Equidox Webinar logo

See our smart Table Detector in action in this live demonstration. Watch as it quickly tags tables, even complex tables, in a few clicks. Learn how to get the most from this fantastic feature that saves you hours of remediation. Check out this webinar to see this artificial intelligence-powered feature in action.

Smart Table Detector Demonstration

Tables are a great way to organize data.  Table cells that are tagged for a screen reader to understand the columns and rows allow all readers to easily interpret the table content.  The Equidox Smart Table Detector makes all this easy and FAST.  It features smart auto-detection of rows and columns, an automated Table Summary, and many other time-saving features.

Video transcript


Equidox by Onix

Reach everyone

Hello everyone. Welcome to our Equidox Smart Table Detector webinar.

My name is Dan Tuleta and I am a sales engineer here with the Equidox team.

And I’m going to be walking you through some of our new technology regarding the way that we detect tables in Equidox.

If you have any questions about this webinar or anything else related to Equidox, please don’t hesitate to reach out to us at any time

Okay, so let’s get into it!

I’m going to open up Equidox here in my browser and I’m just going to start here on this

example here that has a few tables in it

So if I just navigate to the first page…

What I’ll see is

A page that contains very clearly a table. We’re able to see that we definitely have rows and columns and headers and things like that

But what I’m noticing is that every zone has actually been detected as a text zone.

This is not ideal. This is not the structure that we’re looking for if anyone has used Equidox before,

You might be familiar with this process. But if I take a look at the preview just as things currently stand.

This is what I’m

Going to experience if i’m using a screen reader


Considering everything is a text zone. Meaning that’s going to be wrapped up in a P tag when we go to export this document.

Everything is going to just be read in this reading order. So this has no table structure whatsoever.

Every one of these individual cells has been marked as a paragraph, which is not ideal.

So to fix this we’re just going to ignore all of those different text zones.

And we’re going to draw a zone on top of the table.

And once I’ve done that I will go to the drop down menu and change the zone type from text to table.

And when I do that, I now have a button that will populate underneath table properties that’s called Table Editor

So when I open up the Table Editor I’ve now isolated the table for myself.

And the first thing I’m noticing is I have these green grid lines that have suddenly appeared.

So Equidox took a guess at the basic layout of the table. Just based on how I drew the table zone.

It can certainly do a bit better though. And that’s why we have our new technology the Table Detector.

So I have two different sliders columns and rows and these are actually leveraging machine learning and computer vision

to help us better recognize table structure and just minimize the amount of actual manual manipulation that we have to make to tables.

so in this case

My columns have been placed on top of the table by Equidox pretty much perfectly

So I don’t even really need to adjust the columns.

But the rows you’ll notice I’m missing some rows. I need some additional rows and these aren’t exactly placed where I want them.

So if I move the row slider back and forth just slightly

You’ll notice that now I suddenly have rows

placed perfectly on the table

And my columns have moved over just slightly.

But I can quickly make that fix by using our nudge feature. so I can nudge those back to the right if I need to.

Or I can even click and draw and make these tiny adjustments if needed. We don’t have to get everything perfect on the table

So if I left my column right there, it would not make a difference

Because I have good spacing in this table. It’s really just about capturing the data inside of the cell.

So having it perfectly lined up with the table grid lines is not required.

Um, it’s just simply the grid lines are going to disappear once we’re done working on the table anyway.

So if we’re not doing this for aesthetic, we’re just simply trying to capture the data in these individual cells.

So we remember what that preview of that table looked like before which was not a table at all. Just a series of

words that were going to be read in this specific reading order with no structure no navigation for them.

So what I’ll do is if I refresh the preview now.

You’ll see that I have a perfect HTML table.

And all I’ve had to do is move those… adjust those sliders from left to right just slightly.

So, uh, that’s how easy it is to remediate tables in Equidox for your average, you know, standard table.

It’s really just a matter of moving those detection bars left to right and Equidox does the rest for you.

Now the beauty of this is if you are converting this document into HTML, this is exactly what you will export.

Essentially you’re going to be exporting this

HTML table, it looks exactly like this and

will be very compatible with a screen reader… very easy to work with. But if you choose to export the document as a PDF file,

which many people do, it’s definitely our most popular export format.

If you’re going to export it as a PDF Equidox automatically takes this HTML

source code that we have here in this table and it will plug it into a PDF tag tree for you.

So that you are not having to make any sort of manipulations or adjustments to the tag tree.

This is going to happen automatically when we export the PDF.

So this HTML page is really a way to just validate your work as you go.

When you’re satisfied with the structure that you see here in your HTML,

that is your indication that you can go back to the page or the

Table Editor, save your table, and then just close out and then you’ll return to the main page where we started.

And you’ll notice that we’ve gotten rid of all of those

different text zones that were there before they have been overridden by the table zone.

So that’s uh, you’re not having to go through and delete, you know, 50 different text zones.

Equidox does that for you.

Okay, so let’s take a look here at the next page.

And this next page is again a different type of table in the sense that it doesn’t have any grid lines wrapping around it

So maybe it’s a little bit less obvious that it’s a table

Um, but in fact, we actually do have table structure here.

We have the song here and band as our column headers and then a variety of different, you know hit songs from those different years.

So if we uh again just drawing a zone around the entire table.

And then hitting T on my keyboard this time, so I’m going to use my keyboard shortcut

so to change the zone type from text to table I

just press the T on my keyboard and that will allow me to open up the Table Editor

And then if I just zoom out slightly here to make it a little bit easier to see.

Again we have green grid lines that have been placed

not exactly perfect. It can definitely do a bit better.


Let’s use our Table Detector

And if I just move my column from left to right you’ll see it’s nailed the columns and now let’s try for the rows.

So moving the rows from left to right and it looks like it’s got it pretty much perfect.

I’m, not really going to be able to do any better than that because i’ve got it exactly spot on so…

Let’s just check the preview and see how things look.

Pretty much exactly what I would expect to see.

Now if you’re curious

about the bold font that is appearing here in the top row in the furthest left column.

This is actually indicating that these are going to be marked as table headers.

So these are our row headers and these are our column headers up here.

And um, this is just applied by default by Equidox at a one to one ratio.

So one row of column headers one column of row headers that can of course be changed if needed.

So if you have multiple column headers or in this case, we don’t really have true row headers. So these song titles

Um, they’re they’re marked with that column header up there. We don’t really need these to be marked as row headers.

So what I can do is I can go back to the table editor and underneath my table information,

I have the column header and row header these two little fields here.

You can see that they’re just at a one-to-one ratio by default. So if I mark my row header as

zero by just using the arrow key moving it down to zero…

And then if I refresh the preview…

You’ll see that now that bold font has disappeared and the only bold is in the top row there for the column headers.

So this is uh, this is a better way of structuring this table by taking that row header away.

And just leaving the three separate column headers for the three separate columns.

Okay, so that’s another pretty straightforward table. I don’t have to do a whole lot to it. I’m just using our Table Detector.

It’s very fast very easy to work with and again,

all of that will automatically be converted into a PDF tag tree when we go to export it.

Okay, so now we are faced with a slightly more challenging table, you might see that there’s

a lot more cells there’s more densely spaced data. We have multiple rows of column headers.

So we have a bit more to do here.

So what i’ll do is I will just again,

same process as always drawing that table zone around the table. I will press T on my keyboard.

And I can now open up the Table Editor.

So, uh we are now looking at just the table and let’s use the Table Detector and see if we can improve on it

And it looks like we can certainly give ourselves a nice starting point.

So we’ve pretty much defined this table spot on.

We could potentially move this to the left slightly…

just to get it more lined up, but it probably wouldn’t make all that much of a difference because again,

We’re just trying to capture the data.

We’re not using these green grid lines for any uh, you know aesthetics they are going to vanish as soon as we save the table.

Um, so let’s just take a look at the structure here and see how we’re doing. Um, it looks pretty good.

but the one concern or two concerns are this top row up here the

2017 and 18.

Those are being split. We’re left with some empty cells up here in our column header row. That’s not going to be ideal…

and then we also have

Our Q1 through Q4s, which are in that standard font…

indicating that they’re going to be read as table data, whereas we really need them to be read as table headers.

So let’s go back to the Table Editor and clean this up a bit.

If I want to in this case, I want to span across these four separate columns…


2017 is sort of a parent header for the four individual quarters that make up 2017.

So if I select here above Q1,

And I hold down shift on my keyboard and then select above Q4…

I have a button up here to span those columns.

Or I could press S on my keyboard

so when I press S

That is going to create that span for me and I will do the same thing here for 2018. I will hold down shift,

select above Q4 and press S and then when I refresh the preview…

You’ll now see that

we’ve gotten rid of those empty cells and 2017 and 2018 have been spanned across the four appropriate columns.

Now one last thing to fix here is our Q1s or Q4s. We want those to be read as table headers.

Whereas right now

they’re going to be read as table data if we go to export this document.

So to fix that we will come back into our Table Editor.

And again, it’s just this automatic ratio of one to one for column and row headers

So if I just change my column header from one to two…

That is going to give me two rows of column headers.

And now when I refresh the preview, we will see that the bold font

is there uh indicating that those are now marked as table headers.

So that’s really all we have to do to this table. Uh, there’s nothing else that I would recommend doing. This is perfect


And we can then save the table.

One other thing I will mention on this table is,

If you noticed as I was making adjustments to the table this table summary field started populating.

And this is a really handy feature and it’s one of our new enhancements to the table editing tool.

This is Equidox programmatically writing the table summary for you.

And when you have the table summary,

Turned on… the auto summary turned on. Um, it’s good.

it’s just really nice to have a consistently written table summary, and you’re not having to

write it and then you also don’t have you know, if you have 20 different users in your organization,

They’re not all sort of interpreting. What a table summary is supposed to be.

Equidox is going to

keep that nice and consistent for you. And also just save you the hassle of having to type it all out.

So as you make adjustments to the table this table summary will start to change based on the adjustments that you make.

So in this case, you know, for example the header column contains column spans, so

as I’m

spanning across those. Um, it’s giving you that indication that there are spans in that top, uh column header.

So, uh, you’re getting all of this nicely written for you and you’re not having to do it yourself.

You’re going to keep it nice and consistent.

You have to turn on the auto summary feature in your profile, which i’ll make sure to show you before the end of the webinar.

Okay, so that’s really about all we have for this document.

This is only three pages and contain three separate tables. But let’s take a look at something that might have

a little bit of a different curveball for us.


Let’s open up this table.

Now on its face, this is probably the most simple table we’ve looked at yet, and that’s true. So just to

Quickly go through it. We’ll press T on our keyboard…

Open up the Table Editor…

And let’s use our detection to move things left and right.

Perfect, all right. So this is what this is the setting that I was looking for.

Um, so what you’ll notice is i’ve got it pretty much spot on where it needs to be.

And as I said before,

You don’t have to get the green grid lines perfect.

But if you ever run into an instance where you have all of your columns or all of your rows

Or maybe just offset from where they need to be by

a few pixels or in this case, you know, maybe a half inch…

Um, what we have is a feature called the nudge feature.

So if you go to the Cells Tab in the Table Editor, um, this is the second tab over…

What you will see is we have the column adjustments and the row adjustments.

So these are for nudging the columns and the rows up and down or left and right.

So in this case, I want to nudge my columns over and if I nudge them all to the right….

You’ll see as I click on them,

Uh multiple times, all of those columns start to move in unison.

So it’s not really that big of a deal here for this very simple table because I could just very quickly click and move things

over but if you can imagine, you know a financial table that might have a hundred different rows in it…

And maybe every one of those rows is just two pixels lower than where it needs to be…

It’s very tedious to have to click and adjust every one of those rows by just a little tiny fraction of an inch.

So having that nudge feature to move everything in unison is really helpful and it will save you know your hand from

you know having to grip the mouse and move things around very slightly.

So that’s the nudge feature. Keep that in mind that you have that if you ever need it.

You know typically I’d say over 90 percent of the time Equidox is going to place those column and row

grid lines exactly where they need to be.

Or at least close enough that all of the data is captured that you’re not going to have to make any adjustments.

But if you ever need to make sort of those manual type of adjustments you certainly can with the left and right.

And then the other adjusting, uh that you can do on this Cells Tab

os the splitting columns and splitting rows. There’s also buttons for them up here as well.

So if you’re on the Table Tab, you can still add and delete columns and rows.

But if for example, you need to split a column, you can press the split column button.

And then to get rid of a column you can press merge right.

And the same thing for row, if you press split row you can add a row.

And then merge down will get rid of that row. There’s also keyboard shortcuts for this.

so if you press C on your keyboard that will create a new column if you press M

On your keyboard (M is in Michael) that will remove that column.

And R for a new row and then D to delete that row, So you have keyboard shortcuts as well.

Typically, the detection tool is close enough that you’re not going to have to do too many,

Um, creation of new rows and columns, you know 99 of the cases…

But if you ever do you have keyboard shortcuts to help you be a little bit faster.

Okay, so I’m going to save this table and close out of it.

We’ve handled that one.

but this is the table that I really brought you to this document for. So this is a little bit of a curveball because

it looks visually exactly the same as this table up here, but this is actually an image and you can see that in the “IMG”

Little flag in the upper left hand corner of the zone.

So, although we can visually see that this is in fact a table that contains text…

It in fact is actually just…

someone took a screenshot or a scan

of this table and placed it into this document. So this is actually just an image this text. Although we can visually read it

in the image, a screen reader cannot. There is no encoded font. There’s nothing there to be to be read by a screen reader.

So it’s our job as the remediator to make sure that we’re giving this actual table structure.

I don’t want to take this image file

and use the alt description and start typing out a description for all of the different data in this in this table.

Um, that’s going to take a long time and it’s also going to overload an alt description, which I don’t want to do.

So I’ll hide the zone.

Um using the check mark, and that is essentially artifacting the table, or artifacting the image of the table. I should say.

And now I can draw a zone around the table itself.

And then press T on my keyboard.

And then open up the Table Editor just the same process as always.

And here is where I will use the Table Detector again to try to better identify


the cells

So this might not be quite as accurate because it has no actual data to go off of, it’s just using

like its vision to see that there’s something there that looks like text.

So I can I had to make a small adjustment but it’s really just takes a couple of seconds.

So now I have everything pretty nicely defined.

Based on the layout of the table. And now if I come down here below the Table Detector tool…

Where I have my row and columns,

I have the optical character recognition section. And if I press “OCR all cells,”

this is going to run an optical character recognition process on all of these individual cells and plug that text data into the table.

So that just took a few seconds because this is a relatively small table.

But if I refresh the preview, let’s just see what we’re looking at.

Here’s our table that’s actually OCR and you can see that it’s populated that table data with all of the appropriate information.

So i’ve taken something that’s an image,

of a table and i’ve actually, um,

extracted the text from that image and Equidox has placed it into

a table layout so I have that proper structure.

And now it’s actually something that is machine readable, for people that are interacting with the document with assistive technology.

So that’s how we can OCR a table. Hopefully you’re not tasked with having to do a lot of OCRing

or dealing with OCR tables…

Because they’re not always going to be you know, this clean and simple with any tool to be honest.

OCR has a lot of limitations just in general, um dealing with

scanned old Xeroxed

PDFs that, you know,might be 20 years old might have a crease in the middle… might have handwritten notes…

You really just don’t know what you’re going to have.


having, you know a tool like Equidox to quickly convert something into

usable text is helpful. Uh, but again, hopefully you’re not dealing with too many of those because you know just OCR data is

is always going to be tricky for screen readers.

Okay, so,

one other thing i’ll mention about OCR is if you go to the Cells Tab where I was using the nudge feature before

there is also

This field that will populate you can now see that the cell source has been marked as OCR.

Whereas before it would have been marked as PDF just by default.

Meaning it’s pulling the data straight from the PDF file.

But here it actually has the text inside of this window for that specific cell that I have selected.

So if you ever need to make an adjustment to the text, let’s say for example, it recognized that one as a lowercase L

(which, you know, sometimes happens)

It just depends on the font, and I know the quality of the scan all sorts of factors are involved.

But if you ever need to make an adjustment, you certainly can.

By just adjusting it here in the text field. We also have another

cell source, which is called Custom

And if you select Custom it will give you a similar looking field, but it won’t have anything

it will only have in it what is contained in the cell, but if you need to you can type in something, um..

For example I’ll just type in “custom information.”

So if you have a table that contains

a lot of blank cells, or if you want to make adjustments to how it is currently laid out

visually on the table on the page (which we can take a look at an example of that shortly)

But that Custom cell source is also helpful. It allows you to plug in information

where maybe the table is missing something that would be critical for a non-visual user to understand that table.

So you have the flexibility there to sort of

work around poorly designed tables.

Because not all tables are this simple where you just have one column header one row header and then some table data.

A lot of people design tables to

be like visually stunning, but the actual structure of them is not very compatible with machine readers. So

tables can get very tricky and complex.

But you have Equidox and all of these tools up your sleeve to quickly work around bad table design…

Because not everyone is designing tables with accessibility in mind when they’re laying them out.

All right. So let’s take a look. I want to show you another example of when you might

find the Custom

Cell source

very helpful.

And this is again an example of, this is actually a document that was pre-OCR’d before it came into Equidox.

Which is why we have this giant image that’s covering the entire page. So I can just hide that image.

And get rid of that zone altogether.

To artifact that image. because we actually do have the text here that’s already been recognized by Equidox.

And it’s given us all of these different text zones…


I really want to take a look at these tables.

So let me just get rid of all these zones just to look at them at a more clean layout.


This table here while it might look very simple on its face…

um, what we actually have are these sort of

strange, um headers

That are inserted into the middle of the table and then they have a blank cell

That they correspond with over here…

So this is kind of an example of, although it’s a small table,

this is pretty bad table design as far as accessibility is concerned.

because really this “permanent supply” that we can see here, it actually


It’s actually a row header for these different

“Irrigation” and the “M&I Water Fishery Flows…” all this stuff.

So this is actually a row header,

but it’s not placed in the correct location in the table to be able to quickly define it that way, so,

we can

work around this by just drawing a zone around the table…

And if you’re wondering why I’m not including that this is actually not part of the table. So people sometimes get that confused.

They see this big black border outlining the table and they want to include everything.

You don’t need to include that part of the table. That can be marked as a header.

You know, which would probably make the document more easily read and navigate for the end users.

So I’ve identified the table, and I’m going to press T on my keyboard. I will open up the Table Editor…

And let’s try our Detection see if we get a better starting point. That looks pretty good, and…

So what I’m going to do here,

is I’m going to basically migrate this “permanent supply” and the “temporary supply.”

And I’m going to create them as extra row headers.

And I’m going to get rid of them, so they’re not duplicated.

So if we take a look at the preview for how it sits now…

you know, it’s pretty much what we would expect to see, but you can

understand the confusion that this would give an end user who’s

hearing “temporary supply” and then it doesn’t actually have any data that corresponds with it. So to fix this


make sure that we have the right amount of rows.

And then let’s create an extra column…

So what I’m going to do, is I

press C on my keyboard to create an extra column, and i’m going to move this over here to the far left.

The size of it doesn’t really matter.

We just need to have a little bit of room in there to work.

And what I will do is,

I’m actually going to get rid of this extra row as well.

Because I don’t need, I won’t need it ultimately, and if I come in here into this cell,

and if I press

the Custom cell source,

I can now type in “Permanent


(If I can spell permanent)…

And then I can span down here to the subtotal “Permanent Supply.” So I’ll span down there

and then if I come into my actual, um

Custom cell source for this cell

I can get rid of this duplicated word, which is “supply.” So I just need “Irrigation Water” in that cell.

And then what we’ll see when we refresh this preview is now “Permanent Supply” has actually migrated over

into this row header and into this row header column and then these individual

pieces of data in here

indicating “Purpose” and the “Acreage” and “Feet”… they now have this parent row header. That is more appropriate for them.

So we’re sort of taking this table that was

not properly structured for accessibility purposes… we’re able to work around these types of problems.

So I’m going to do the same thing here. Where I’m going to get rid of that

extra row… I’m going to change this cell source to Custom and now I can type in “Temporary


And then I’ll go into the Custom cell source here as well to just get rid of that extra word…

So we don’t need that duplicated in both cells.

And then this will give me

the appropriate

row heading.

So you can see I now have “Temporary Supply,” which is a row heading for the “Irrigation Water.”

And then I can also of course span across my totals…

So what I’ll do there is, just since I’ve created this extra column, I’ll just hold down shift, and I’ll press S to span

those two columns. So

now my “Total” is actually marked as a row header as well.

So this is a better layout of this table, and it doesn’t take very long. It’s just you know that extra step.

But what we’ve done is we’ve taken a poorly designed table…

It’s not our fault that whoever put this document together

wasn’t thinking in terms of screen readers and accessibility…

But we have tools up our sleeve with Equidox to work around those types of problems and create a better

table structure for the end user.

Okay, so that’s about it for that table there.

And I would repeat that process on this table as well. You can see it’s similar sort of layout.

So I’m going to just, uh, to avoid the redundant information. I’ll just skip onto something else…

All right. So we’ve taken a look at some pretty straightforward tables.

But I also want to show you something that might be classified as a more densely, or tighter, or more complicated table.

So let’s open up something that looks like this.


again, all of these different text zones as you can see not ideal. How would anyone using a screen reader be able to understand this?

It’s just a bunch of nonsense. You know, what does that number, like, pertain to? I have no idea. So to fix this,

again, same process as always…

Drawing a table zone around it pressing T…

Making sure we’re not taking in a big bunch of margin with us, opening up the Table Editor…

And let’s use our Table Detection tools.

So we can adjust these rows and columns. Got them pretty

nicely spot on.

Not too bad. I’m going to have to get rid of a couple of extra rows…

Just because this is kind of a… Up here you can see our column headers are like…

Quick adjustments I can..

I can get rid of these extra rows by pressing

the D key

And I think that should maybe one extra row here as well.

And then we can take a look at how things are shaking out.

So pretty solid table structure. Um, I would probably recommend running it through that same process before as making this “Costs”

And the “Cumulative depreciation and Impairment Losses.”

I would probably move those over as row headers as well.

Just the same process that we just went through.

Or alternatively, you could press shift and then span across

these four columns or these five extra columns…

And that will give you something that looks more like this:

Where you have these marked as row headers.

Not ideal.

But also not necessarily incorrect either. It’s just, uh, sort of up to the remediator and the individual table.

This is definitely a faster way of doing it.


You can

kind of go both ways with it, but that’s again a more densely spaced more complicated looking table.

You can see how quickly we can get it cleaned up and then I will close out of the Table Editor.

And save the page and just back out entirely.

Now there was one last thing I wanted to show you, and that is of course,

how to turn on

your auto table summary in your profile.

So whenever you log into Equidox, if you just go up to the upper right hand corner and go to your profile…

That will give you a page that looks something like this…

And you’ll notice that you have the Zone Highlight with the Auto Summarize mode and the Output Default tab.

So these are three options that you have to change.

So if you just turn to your Auto Summarize mode, and you hit the drop down menu change it from default to enabled…

And that will give you the same setting that I had where it’s automatically writing the table summary for you.

Otherwise, it might be hidden or it might be default to disabled. So

if you want to change that you can set it from default to enabled and then just save your profile change.

And then that will give you the same feature that I was showing you earlier where the table summary is auto. populating for you

Um, okay great. So that’s about all we have for today.

So I do appreciate uh,

everyone for for watching and viewing. And again if you have any questions regarding Equidox or anything we’ve covered today

uh, please do not hesitate to reach out to us at EquidoxSales@onixnet.com.

or visit our website at Equidox.co

Or please get in touch with one of your account managers, we would love to hear from you.

We’d love to chat more about some of your specific examples.

We can definitely set up demos and take a look at some of your tables that you’re working with.

And help you straighten out your workflow or show you how fast Equidox can turn those around for you. All right, so great!

So, thank you, everyone, for joining, and have a great rest of your day.



"*" indicates required fields

Clicking Subscribe will take you to the Thank You Page.
Lead Source*
This field is for validation purposes and should be left unchanged.


Accessibility Culture

Accessibility News

Company News

General Accessibility Resources

Laws and Regulations

PDF Accessibility Resources

Tammy Albee

Tammy Albee | Director of Marketing | Equidox Tammy joined Equidox after four years of experience working at the National Federation of the Blind. She firmly maintains that accessibility is about reaching everyone, regardless of ability, and boosting your market share in the process. "Nobody should be barred from accessing information. It's what drives our modern society."