It has been some time, and I have begun playing on a MUD where the map indeed matters a lot. Talking with someone who created a solution for blind users to understand ASCII maps, I've turned the idea over in my head. The thing that he coded was specifically coded for one game, though the idea could be used in other games. That said, I'm still not sure how portable this solution is.
One possibility would be a rote ASCII reading. Here is an example from the Two Towers:
> map
+-------------------------+
|.~.........+..........^^^|
|.~.....*...+............^|
|.~.........+...%%%%'.....|
|..~........+...%*%'''....|
|..~.........+.^*%%''''...|
|..~.....*...+.^*..'''....|
|~~~...+++++++***..''''...|
|.+=+++......!+.+++.'''...|
|+*~*%%%..^^^..+.*.+++++++|
|..*~%%%%%%^^^.+..........|
|....~%%%%~*^^.+..........|
|....~%%%~%%^^^.+.........|
|.....~%~%%%%^^^+^........|
|......~%%%%%%^^+^^^^.....|
+-------------------------+
I can read it with a Braille display. Without one it would be tricky. So a solution would be to manually handle it: you select the map and press a key combination. CocoMUD places you in the center of the map, says (on the exclamation point in this example) and then you can use the arrow keys to scroll character by character on the map. Admittedly, this wouldn't be much of an improvement, but I guess it would be much easier.
The more complicated solution is to "convert" this ASCII output into a valid textual representation. Like:
One road starts north of you and leads to the west southwest. Another road goes from northeast to south. There are plains south and southwest from you and a forest beyond it.
As said before, someone has done it and though his system is not perfect, it works and works well. The problem here is that map output will vary depending on the game. Some ASCII maps aren't "one room is one character". So what should be done? Perhaps have a SharpScript function that's used to match a character with a feature. In the output above, for instance, you would configure the mapper to associate !
with your position, .
with a plain, %
with a forest, *
with an interest point and so on. This way the mapper would be able to read the map accurately. I would like to do it through a SharpScript function because it would need to be different depending on the game. Options are still open to debate.