Doing some research, and from what I recall, align/valign as HTML properties are technically no longer supported in HTML5 -- you are supposed to handle this with CSS (text-align & vertical-align respectively)[1]. The main reason it still works is that browsers still support that backwards compatibility.
I do have a fix on my local that accounts for this using CSS attribute selectors to check for that value and then apply it as CSS and it is safe across browsers. I do wonder if it's more prudent to have a class on it that I can check for?
I would suggest adding a class to the table element designating this as a "v12" style table. Then something like the following would (untested) just work:
table.v12 > thead > tr > th {
text-align: center,
vertical-align: middle
}
Adding semantic classes to the other elements, namely the <th>, would work too and allow for more precision and less potential for conflicts.
I do think (though not really knowing the existing state) that regardless of the precision for the sub-table selectors that these tables should probably have new css rules created for them and those rules limited to applying only to properly classed tables. Being as they should be more selective than existing table related selectors the newly added rules should then also take precedence. And newly added rules here won't impact the body of existing tables that we have - not all of which I would presume are going to change.