The concept that ignorance of the law is no defense, originates in a time when there were few laws. For the average person, law was simple. Don’t steal. Don’t cheat. Don’t hurt the innocent. Pay your taxes (Yawwww!) and don’t hunt in the king’s woods. A couple of hundred years ago, that was about all anyone would need to know about the law. Religious rulers added a few nutty overlays., but those were pounded into your brain by religious teachers in the community.
Nowadays. we have hundreds of thousands of laws, regulations, and rules that can get you into trouble. In many case you not only have to be familiar with all of these laws, and the thousands and thousands of court decisions in every jurisdiction, you on occasion have to know the laws and rules of every other country in the world and its attendant bureaucracies. Violate the foreign countries laws, rules and regulations while doing business from the United States with someone in another country, which activity is handled pursuant to all the legal laws, rules and regulations of the United States, and in many instances, you can be prosecuted here for violating the foreign laws there.
So, my suggestion.
In every criminal proceeding, a defendant should be permitted as a matter of law, to argue to the jury that 1) the defendant was unaware that the action was illegal, 2) no reasonable person would have thought that action to be illegal, and 3) a person situated in the same social/work environments as the defendant would have no reason to know that the action was illegal. In any prosecution where such a defense is raised, the prosecutor must prove beyond a reasonable doubt that at least one of the three premises is not true for the defendant. If the prosecutor fails to make that case, the jury must acquit the defendant.
It should also go without saying that in every trial, the judge must tell the jury that if in the jury’s judgment, convicting a defendant of the charged crime would be unjust, they would have the right to acquit the defendant even if it believes the defendant violated the law. This is the basic principle of jury nullification.