Normally they are listing every technology that is used, either that a specific recently-departed employee they need to replace used, or just generally what the company/a team in the company uses/has used at some recent point.
Generally lots of the stuff in the laundry list is “nice to have” even if it specifies that these skills are needed (though this is not a hard an fast rule). If a candidate covers all the bases, that’s great, but if not, a judgement call would be made on whether they seem to be able to learn the tech the company uses. Core skills get you the job, and knowledge of one language translates to other languages. It gets progressively easier to learn new languages once you know your first. Stuff like frameworks are easy enough to learn once you understand the underlying language & concepts (an experienced JS dev should pick up something like React and be productive in it in a few days, for example).
HTML/CSS/JS are necessary FE skills, but a company is always going to have some back end that these need to build off, and just being familiar one often gives a massive boost to hiring chances - in practise: PHP is common for agencies, C#/Java for enterprise, Ruby/Python for smaller software shops, Node/Go for teams within companies building APIs, Swift/ObjectiveC for IOS app shops, Java for Android app shops, C/C++ for game dev. Knowing SQL is always useful.
Also, heh, there is also the common situation where the recruitment person used by the company is just picking buzzwords off a list (one of the ones we used at my last job kept adding “Java” and “PHP” as necessary skills on every listing at one point, despite the fact the position was always for either a Ruby on Rails or JS dev and this was specified in the specs we sent to her - this strategy worked though, because we got people in who were experienced in PHP, and who made the jump to Ruby on Rails no problem).