Check if block is visible
Checking view access to a block includes visibility checks. so you can just do this: if ($block-&gt;access('view')).

Why do you want this information? block.module has a block.repository service with a getVisibleBlocksPerRegion() which gives you exactly that. a list of visible blocks, grouped by region.