A list of links or buttons inside a nav, with aria-current="page" on the current screen. Icons alone are ambiguous, so pairing them with label text is the default; if labels are hidden, each item still needs an accessible name.
The difference from a navigation rail is screen size and orientation — bottom navigation sits horizontally at the bottom of a mobile screen within thumb's reach, while a rail sits vertically along the side of a wider tablet or desktop screen. The difference from tabs is what gets swapped — tabs change a content section within one page, while bottom navigation switches the app's top-level screens (Home, Search, Profile).
Past about five items, labels start crowding a narrow screen, so it's usually capped at 4–5 with the rest folded into a "More" item.