Во голем дел од нејзината должина, Елба е пловна, и обезбедува важна врска во водните врски помеѓу источниот и западниот дел на Германија.
Тек
Изворот на Хафел се наоѓа на Езерската област Мекленбург, помеѓу езерото Мириц и градот Нојбранденбург. Не постои вистински видлив извор во форма на врело, туку реката потекнува од езерата близу Анкерсхаген. Оттука, реката првично тече кон југ, за на крај да се влие во Елба, која се влева во Северното Море. Секоја река североисточно од нејзе тече кон Балтичкото Море. Реката влегува во Бранденбург близу градот Фирстенберг. Во нејзиниот горен тек и помеѓу Берлин и Бранденбург на Хафел реката создава неколку езера.
Главната притока на Хафел е реката Шпре, која се влева во Хафел во Шпандау, западен округ на Берлин, и е подолга и носи повеќе вода отколку самиот Хафел за време на нивната утока. Втората најголема притока е Рин, именувана во средниот век од доселениците од долна Рајна. На јужниот крај на Рупинското Езеро, браните можат да ги распределат водите на Рин или кон исток или кон запад.
Областа околу и северно од средниот тек на Хафел е наречена Хафеланд. Се состои од песочни ридови и мочуришта. Неколку километри на реката пред нејзиното влевање во Елба близу Хафелберг се наоѓаат во покраината Саксонија-Анхалт. Поради малиот спуст на реката, таа е подложна на поплави од страна на Елба.
Во раните грчки и латински извори, како „Древна Германија“ на Такит, името на реката било пишувано и како Хабола, Хабула, Хафела. Името на реката Хафел е поврзано со германскиот збор Haff, habe, hafen, Hafen кој означува пристаниште.
Подоцна, Словените кои се населиле долж областа на реката Хафел биле нарекувани Хефелер во германските извори (понекогаш како Хавелјани).