This is largely an opinion-based and philosophy issue, a source of endless and useless debates over “semantic markup”, itself a semantically vague concept. But to turn the question to something more constructive, I would ask what it really matters which markup you use. What does it imply in non-CSS rendering, or when assistive software is used?
From this viewpoint, ul
is OK if the default rendering, with bullets, is acceptable. Otherwise, use div
, or use br
between links. Do not try to use just a
with styling, since then the links would by default run together, appearing as inline text with no separator.