Materials/shaders can only be assigned to mesh faces, either real mesh objects or procedural meshes created by modifiers like the Skin or Geometry Nodes modifiers etc., or for example curves which get "meshed" by giving them extrusion or, bevel or profile and likewise. An exception are also lights, which can have shader nodes for emission. Objects like empties, cameras and armatures cannot have shaders. Anything which disappears when you turn off the Viewport Overlays basically.