And there are three things required in religion for worship of God, that is, faith, hope, charity. In faith, what must be believed; in hope, what must be hoped; in charity, what must be loved. Faith ("fides") is that whereby we truly believe what we are not able at all to see. For believing is of what we are not able to see. And 'faith' is said in the proper sense if everything is done ("fiat") that is said or promised. And it is called faith, from the fact that what has been done ("fit") is that which was agreed between two, as between God and man; therefore it is also covenant ("foedus"). That is called hope ("spes") which is a foot going forward ("pes progrediendi"), as in "It is a foot" ("est pes"). Thus also for the contrary desperation: the foot is lacking ("deest pes") there, and there is no ability to go forward, because as long as someone loves sin, he does not hope for glory. Caritas in Greek and love ("dilectio") is understood as that which binds two in itself ("duos in se liget"). Indeed, love begins from two, which are love of God and neighbor; as the Apostle says (Rm 13:10), "Love is the fullness of law." It is greater than all these, because who loves both believes and hopes. But who does not love, though he accomplish many good things, toils in vain. But no carnal love ("dilectio carnalis") is love ("dilectio"), but is only called desire ("amor"). We generally only apply the name of love ("nomen dilectionis") to better things.
St. Isidore of Seville, Etymologies, Book VIII, Section 2 (my very rough draft of a translation). The best of these etymologies, of course, is that of hope: without hope, spes, you have no foot, pes, to make progress with.
Although they often did attribute to the origin of words to them (and this is especially done by Isidore), we should be careful not to import all the associations 'etymology' has for us into ancient and medieval use of the term. While they did take it to uncover historical features, the medievals are often also frank that etymologies have a primarily logical function: namely, to define using the same letters or sounds. Nor is this quite so quixotic as we might assume, since it is quite clear that letters and sounds do have an influence on meaning. Consider the words 'parameter' and 'perimeter', for instance. If you defined a parameter as that which sets the perimeter for a practical endeavor or kind of behavior, this would certainly be a more accurate definition of how people actually use the term than any of the standard dictionary definitions. This is because those dictionary definitions treat the word as isolated; but in reality, when people talk about 'parameters', the word naturally also triggers an imaginative association with the better known 'perimeters'. Taking this into account gives us the meaning of the word not merely as abstracted from all context, but as it actually lives and breathes, so to speak, in the world. This is precisely what the medievals had in mind. Spes and pes do echo each other; it would actually be strange if the meaning of the more immediately obvious 'foot' never in any way influenced how people used the word 'hope', given their similarity in Latin. And even if it didn't, the medievals were not above correcting nature and sayiing that it should.
And on that point, who is to say they are wrong? It gave us medieval Latin, which is a language with a structure brilliantly suited for logic, in which every important abstract word can be defined in a memorably poetic way by an alliterative play on words. That's a pretty decent result for building a language.