Let’s start with general idea.
Your “Tags” have nothing in common with Topics. So don’t think about them.
“Tags” is just a name for attribute, not built-in CMS functionality per se. It could be named something else, like “Favourite words” etc.
You are probably using something like “Atomik” theme, so “Tags” attribute has been automatically added during installation.
When we are talking about “Tags” of Page, I assume we are talking about that “Option List” attribute type.
Go to /dashboard/pages/attributes
and you will find it.
“Tags” of image is just “Text” attribute type (not “Option List”).
/dashboard/files/attributes
Image tags are much simpler as you discovered by yourself. Just simple string that you can display/update easily.
“Option List” is full-fledged object, so there will be differences how you should handle it.
Those tags are different because of legacy reasons/simplicity, I guess…?
It doesn’t matter though, because you CAN ADD your own “Custom tags” attribute to Files using “Option List” - similar to “Tags” in “/dashboard/pages/attributes” (if you really want). Or vice-versa.
Usually you would update attributes like:
$c->setAttribute('your_attribute_handle', 'value');
but “Option List” is a little more complicated than that.
During the weekend I will prepare some real live examples how to handle common scenarios related to “Option List” aka Tags.
I assume that information is not present in docs/it’s very well hidden. I feel you pain if that’s that’s a case.
Cheers