Can anyone help me answer this question?
I have a set of search fields, whose results will populate a table.
As an initial state, should the table have a message saying "No results yet" or should the table not be visible at all?
If the whole page is devoted to viewing query results, show a "no results" message or placeholder of some kind so that the user knows that the application is ready for a query. This will also help keep the page's layout more consistent so that executing a query is not as disorienting.
Without a placeholder or message, your page could have the appearance of being only partially rendered, potentially causing users to hesitate before attempting to interact with it.
Arguments for showing neither the 'No results' message nor the table headings.
Perhaps you can try to avoid showing a message stating the table is empty (will affect the user's cognitive load).
And perhaps you can avoid to hide the table too (it will avoid to be a surprise when the table appears "magically" out of nowhere).
Try instead to show the table with some placeholder content in place of the actual content-to-be. I saw examples where a simple
- (dash) used as a placeholder for content-to-be is a clear workaround to allow the user to see the table (now contentless, but not empty), and it's a hint of where to expect the content to be.