Question: I know semantic tags were added in HTML5.

So isn't the table tag in HTML4 not a semantic tag?

Can only tags such as header, section, article, etc. added in HTML5 be called semantic tags?

I'm really curious.

Answer: 
I wouldn’t say that there were no semantic elements in HTML 4 and before. It’s more that they were mixed with elements that control visual presentation, like `<font>`.

Also `<h1>` and other heading elements were already around, that are clearly semantic. Most notably the `<form>` related tags are purely semantic, and as you say, the `<table>`.

After 1996, with CSS, *separation of concerns* between visual presentation and document structure became achievable, hence the push towards more semantics in HTML 5 and against presentation-tags.

The [Accessibility Tree](https://developer.mozilla.org/en-US/docs/Glossary/Accessibility_tree) is another proof that HTML 4 already had semantics.

It is generated from HTML (from the DOM), and serves exclusively for conveying document and interaction semantics to users of assistive technology. [The first accessibility guidelines were from the early 2000s](https://www.html5accessibility.com/browser-acc.html), so they were based on HTML 4.
HTML5 does not have semantic tags in the meaning of "semantic web" ("data-first web"). HTML5 contains "semantic" tags in the meaning of a graphical user interface (more specifically, a hypertext-oriented interface). Some tags, such as `<address>`, are more "semantic" than interface markup tags, but this is more of an exception. So, if the HTML would contain really semantic tags, the markup would be something like this (but it would no longer be called a **HyperText Markup** Language):

```
<products>
    <product>
        <name>Printer</name>
        <price>100</price>
    </product>
    <product>
        <name>Notebook</name>
        <price>200</price>
    </product>
</products>

```

With something like this CSS:

```
.products {
    display: table;
}
.products .product {
    display: table-row;
}
.products .product * {
    display: table-cell;
}

```

And a query to search engine would be very handy: `select product from products where product.price <= 200`.