You cannot use BFS, because a node with a higher rank may have an incident edge with a lower rank. Here's an example:
Let's say you start BFS at the source (A).
With the algorithm you proposed, node D would come before node C, which is clearly not a topological order. You really have to use DFS.