The only good vegetable source of DHA is some types of algae. The foods you listed contain alpha-linolenic acid, which the human body can convert to EPA and then to DHA, but this is an inefficient process and might not always meet the full requirements for those longer chain omega-3 fatty acids. See:
Do I understand this correctly that if I consume a lot of Omega 6 (I love olive oil and nuts and consume large quantities of both) I might actually harm myself? Do I make Alzheimer disease more likely by Omega 6 rich diet?
They aren't. In order to overcome the omega-6 metabolic preference, you need to consume, at a minimum twice as much omega-3 oils as omega-6, but actually closer to 4x.
Twice as much omega-3 means eliminating olive oil, soy, most nuts, and many other foods. Or, alternatively, downing a pint or so of flax seed every day.
Everything you said is true except I can't see how fish helps in this case. You still need to eat a lot of fish (especially since most fish are very low fat, salmon is a good choice) and cut Omega 6 sources, if you want to make Omega 3:Omega 6 ratio 2:1.
Algae, and the fish that live on it, don't provide omega-3 oils. They provide the fully formed end products, DHA and EPA, so the metabolic bottleneck is avoided.